Aprender TypeScript Tipos modernos y novedades TypeScript 5.x

Módulo del curso de TypeScript

TypeScript
TypeScript
Módulo del curso
Actualizado: 17/04/2026

Módulo: Tipos modernos y novedades TypeScript 5.x

Este módulo forma parte del curso de TypeScript. .

Tipos modernos y novedades de TypeScript 5.x

Las versiones recientes de TypeScript han introducido un conjunto de características avanzadas que potencian enormemente el sistema de tipos del lenguaje. Estas novedades permiten expresar relaciones entre tipos con mayor precisión, reduciendo la necesidad de aserciones manuales y mejorando la experiencia de desarrollo.

El operador satisfies (TypeScript 4.9+)

El operador satisfies es una de las incorporaciones más útiles de TypeScript moderno. Permite verificar que una expresión cumple con un tipo determinado sin perder la información del tipo inferido más específico.

type Color = "rojo" | "verde" | "azul";
type Paleta = Record<string, Color | number[]>;

// Con satisfies: TypeScript infiere el tipo exacto Y valida el contrato
const paleta = {
    rojo: [255, 0, 0],
    verde: "verde",
    azul: [0, 0, 255]
} satisfies Paleta;

// Ahora TypeScript sabe que paleta.rojo es number[], no Color | number[]
paleta.rojo.map(componente => componente * 2); // ✓ Sin error

Const assertions y tipos inmutables

Las const assertions (as const) transforman cualquier literal en su tipo más específico y de solo lectura, siendo fundamentales para crear configuraciones tipadas con seguridad máxima.

// Sin as const: tipo inferido es string[]
const rutas = ["/inicio", "/perfil", "/ajustes"];

// Con as const: tipo es readonly ["/inicio", "/perfil", "/ajustes"]
const rutasConst = ["/inicio", "/perfil", "/ajustes"] as const;
type Ruta = typeof rutasConst[number]; // "/inicio" | "/perfil" | "/ajustes"

Tipos condicionales avanzados e infer

Los tipos condicionales combinados con la palabra clave infer permiten extraer y manipular partes de tipos complejos de forma declarativa, siendo la base de muchos tipos utilitarios avanzados.

type DesempaquetarPromesa<T> = T extends Promise<infer U> ? U : T;
type ParametrosFuncion<T> = T extends (...args: infer P) => any ? P : never;

type Resultado = DesempaquetarPromesa<Promise<string>>; // string

Template literal types

Los template literal types permiten crear tipos de cadenas dinámicas a partir de combinaciones de literales, generando uniones de forma automática y garantizando la corrección de cadenas con estructura predefinida.

type Método = "GET" | "POST" | "PUT" | "DELETE";
type Endpoint = `/api/${string}`;
type RutaAPI = `${Lowercase<Método>}:${Endpoint}`;

Decoradores estándar (TypeScript 5.0+)

TypeScript 5.0 implementó la propuesta oficial de decoradores ECMAScript Stage 3, unificando la sintaxis con el estándar de JavaScript y eliminando la dependencia de experimentalDecorators.

// Decorador de clase estándar TC39
function registrar<T extends { new(...args: any[]): {} }>(clase: T, contexto: ClassDecoratorContext) {
    console.log(`Clase registrada: ${contexto.name}`);
    return clase;
}

@registrar
class Servicio {
    ejecutar() { return "ejecutando"; }
}

Explora más sobre TypeScript

Descubre más recursos de TypeScript

Alan Sastre - Autor del curso

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, TypeScript es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.