alias-en-typescript

Uso de Alias en TypeScript

  • 4 min

Un Alias de tipo en TypeScript nos permite crear un nombre alternativo para un tipo específico (ya sea estándard, o definido por nosotros).

Los alias son una gran ayuda para mejorar la legibilidad del código. Son especialmente útiles cuando trabajamos con tipos complejos (como uniones, intersecciones y tipos personalizados).

Creación de un alias

Para crear un alias de tipo se utiliza la palabra clave type seguida del nombre del alias y la definición del tipo.

type NombreAlias = Tipo;

Por ejemplo así,

type ID = number;        // ahora ID es un alias de number
type Nombre = string;    // Nombre es un alias de string

let usuarioID: ID = 123;
let usuarioNombre: Nombre = "Luis Pérez";

console.log(usuarioID); // 123
console.log(usuarioNombre); // Luis Pérez

En este ejemplo,

  • ID es un alias para el tipo number
  • Nombre es un alias para el tipo string

Alias con tipos compuestos

Los alias de tipo son especialmente útiles cuando se combinan tipos mediante uniones o intersecciones.

Alias con tipos de funciones

Los alias de tipo también pueden utilizarse para definir tipos de funciones,

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

const sumar: Operacion = (a, b) => a + b;
const restar: Operacion = (a, b) => a - b;

console.log(sumar(5, 3)); // 8
console.log(restar(5, 3)); // 2

En este ejemplo, Operacion es un alias para cualquier función que tome dos números como parámetros y retorne un número.

Alias con tipos genéricos

Los alias de tipo pueden definirse utilizando parámetros genéricos,

type Respuesta<T> = {
    exito: boolean;
    datos: T;
    mensaje?: string;
};

const respuesta1: Respuesta<string> = {
    exito: true,
    datos: "Operación exitosa"
};

const respuesta2: Respuesta<number> = {
    exito: false,
    datos: 0,
    mensaje: "Error en la operación"
};

console.log(respuesta1.datos); // Operación exitosa
console.log(respuesta2.mensaje); // Error en la operación

En este ejemplo, Respuesta es un alias de tipo genérico que puede adaptarse a diferentes tipos de datos.

Alias y tipos avanzados

Alias y tipos condicionales

Los alias pueden combinarse con tipos condicionales para crear tipos más dinámicos y adaptativos.

type TipoTexto<T> = T extends string ? "Es una cadena" : "No es una cadena";

type ResultadoTexto = TipoTexto<string>; // Es una cadena
type ResultadoNumero = TipoTexto<number>; // No es una cadena

Alias y tipos de mapeo

Los alias pueden usarse con tipos de mapeo para transformar otros tipos.

type Opcional<T> = {
    [P in keyof T]?: T[P];
};

interface Usuario {
    nombre: string;
    email: string;
}

type UsuarioOpcional = Opcional<Usuario>;

const usuario: UsuarioOpcional = {
    nombre: "Carlos"
};

console.log(usuario.nombre); // Carlos
console.log(usuario.email); // undefined