> Manuales > Manual de TypeScript

Qué son los type alias o alias de tipos en TypeScript, lo que nos permite crear definiciones de tipos simples o complejos que son más expresivas y reutilizables.

Alias de tipos en TypeScript

En el artículo anterior del Manual de TypeScript vimos qué son los tipos en TypeScript, viendo cómo trabajar con tipos básicos, con las explicaciones de cada uno de ellos.

Solo nos quedó un tema importante que tenemos que revisar también que es la creación de type alases o alias de tipos, que nos puede aportar un poco de claridad y reusabilidad en las declaraciones de tipos de TypeScript.

¿Qué es un Type Alias en TypeScript?

Un type alias es una forma de crear un nombre personalizado para un tipo de datos en TypeScript. Es como una etiqueta o un nombre personalizado que representa un tipo, siendo que existen alias de tipos simples o complejos.

Las ventajas de los alias de tipos son conseguir un código más legible, reutilizable y fácil de mantener.

Se define usando la palabra clave type, seguida del nombre del álias y luego asignando el valor del tipo que queremos crear.

type AliasName = Tipo;

Ejemplo de tipo simple edad:

type Edad = number;

let edadUsuario: Edad = 25;

Una convención muy común en TypeScript (y también en otros lenguajes tipados como C# o Java) escribir los nombres de los type aliases con la primera letra en mayúscula (UpperCamelCase o PascalCase), igual que si fueran clases, aunque no es una necesidad.

Aquí, Edad es un alias de number. Internamente sigue siendo un número, pero usar Edad ayuda a entender mejor la intención del código que estás escribiendo. Esto es importante para aportar claridad, pero también para reutilizar tipos y mantener el código.

Alias simples, para objetos

Los alias de tipos simples que acabamos hacer para una única variable quizás no nos parezcan tan útiles, pero sí lo son los type aliases que creamos para describir estructuras de objetos:

type Persona = {
  nombre: string;
  edad: number;
  activo: boolean;
};

let usuario: Persona = {
  nombre: "Lucía",
  edad: 30,
  activo: true
};

Esto evita que tengas que repetir el tipado de estructuras de objetos numerosas veces en el código, a la vez que mejora la legibilidad de tu software.

Alias con arrays

También podemos crear type aliases que definan estructuras de arrays, con un código así:

type ListaDeCadenas = string[];

Y luego usarlo de esta manera:

let nombres: ListaDeCadenas = ["Ana", "Luis", "Carlos"];

Alias con tipos compuestos (uniones)

Cuando hablamos de tipos compuestos podemos entender los objetos, que hemos acabado de nombrar, pero también lo que serían las uniones de tipos, donde una variable puede tener dos tipos distintos.

Las uniones o tipos compuestos también se pueden definir con alias, con un código como este:

type ID = string | number;

let userId: ID = 123;
userId = "abc123"; // también válido

Los alias de tipos en unión se pueden combinar con las estructuras de tipo de array para hacer definiciones más complejas como estas:

type MezclaDeValores = (string | number)[];

En este ejemplo, los paréntesis son importantes: (string | number)[] lo que significa un array de elementos que pueden ser string o number. Ten en cuenta que sin paréntesis, como string | number[], significaría un string o un array de números, que es totalmente distinto.

Que luego se puede usar así:

let datos: MezclaDeValores = ["uno", 2, "tres", 4];

Alias para funciones

Hasta aquí no hay nada que sea demasiado complejo, pero ahora vamos a ver una cosa un poco raruna de TypeScript que también podríamos hacer si lo necesitamos. Se trata de describir la forma de una función con un alias.

type Operacion = (a: number, b: number) => number;

De este modo podemos definir operaciones que reciben dos números y devuelven un número, sin tener que declarar otra vez los tios de cada una de las cosas de la función.

const sumar: Operacion = (x, y) => x + y;

Diferencia con interface

Más adelante vamos a hablar de Interfaces en TypeScript y aunque no sea un tema que hemos abordado todavía y no esté demasiado bien nombrarlo ahora, ya que este texto está dirigido a personas que seguramente sepan lo que es una interfaz, lo vamos a introducir.

Si te has fijado un type se podría parecer un poco al concepto de interface. ¿no? Aunque sí son conceptos similares hay algunas diferencias que resaltar, ya que las interfaces nos permiten crear clases que las implementan y los tipos no.

Conclusión

Ya para acabar, a modo de resumen podemos decir que los type aliases son una herramientas útiles en TypeScriptque nos ayudan a ser más expresivos, es decir, darle significado a los tipos de tus datos. Sirven para mantener tu código limpio y evitar duplicaciones cuando tienes el mismo tipo que repites por varios lugares. Eso también impactará positvamente en el mantenimiento del software.

Puedes usarlos tanto para cosas simples como un string, o para estructuras complejas como funciones y objetos anidados.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual