En TypeScript los tipos definidos por el usuario (o personalizados), nos permiten crear nuevos tipos a partir de la composición de otros tipos.
Estos tipos pueden representar estructuras de datos complejas, uniones de tipos múltiples, o incluso comportamientos.
Tipos de datos personalizados
Tipos de datos literales
Los tipos de datos literales permiten definir un conjunto de valores específicos que una variable puede tomar. Por ejemplo:
let direction: "up" | "down" | "left" | "right";
direction = "up";
Tipos de datos enum
El tipo de datos enum permite definir un conjunto de constantes con nombres más descriptivos. Por ejemplo:
enum Direction {
Up = 1,
Down,
Left,
Right
}
let userDirection: Direction = Direction.Up;
Tipos de datos tuplas
Las tuplas son una forma de definir un array con un número fijo de elementos con tipos de datos específicos. Por ejemplo:
let employee: [string, number];
employee = ["John Doe", 35];
Tipos programación orientada a objetos
Tipos de datos clases
Las clases son una forma de definir objetos con métodos y propiedades. Permiten crear instancias de objetos y heredar propiedades y métodos de otras clases. Por ejemplo:
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
makeSound() {
console.log("Animal is making a sound");
}
}
Tipos de datos interfaces
Las interfaces son una forma de definir la estructura de un objeto en Typescript. Pueden contener propiedades, métodos y eventos. Por ejemplo:
interface Person {
name: string;
age: number;
greet(): void;
}
Tipos compuestos
Tipos de datos union
El tipo de datos union permite definir una variable que puede aceptar varios tipos de datos diferentes. Por ejemplo:
let age: number | string;
age = 25;
age = "25";
Tipos de datos intersección
El tipo de datos intersección permite combinar dos o más tipos de datos en uno solo. Por ejemplo:
type Admin = {
name: string;
isAdmin: boolean;
}
type Employee = {
name: string;
salary: number;
}
type AdminEmployee = Admin & Employee;