Como el estándar absoluto para el desarrollo frontend y backend, TypeScript continúa evolucionando.
Los lanzamientos de TypeScript 5.x se centran en la velocidad del compilador, reducciones de bundle y refinamientos de sintaxis que mejoran dramáticamente la Experiencia del Desarrollador (DX). En este artículo, cubrimos las funciones prácticas de TypeScript 5 que deberías adoptar en tus flujos de trabajo diarios.
1. Parámetros de tipo const
Anteriormente, si querías que TypeScript infiriera los argumentos de un objeto literal como tipos literales estrechos y de solo lectura, el llamante tenía que añadir as const a los argumentos.
Con TypeScript 5.0+, puedes declarar un modificador const directamente en el parámetro de tipo genérico. El compilador inferirá automáticamente el tipo más estrecho en el sitio de llamada.
// Definir 'const' antes del parámetro genérico T
function getNames<const T extends { names: readonly string[] }>(obj: T) {
return obj.names;
}
// No se requiere 'as const' del llamante; el array se infiere como readonly ["Alice", "Bob"]
const names = getNames({ names: ["Alice", "Bob"] });
// Tipo inferido: readonly ["Alice", "Bob"]
Esto previene errores de tipo en tiempo de ejecución al manejar configuraciones estáticas o constantes pasadas a funciones.
2. Decoradores compatibles con ECMAScript estándar
Los decoradores experimentales (flag experimentalDecorators) han estado en TypeScript durante años. TypeScript 5 introduce soporte nativo para decoradores estándar ECMAScript stage 3, permitiéndote escribir decoradores sin flags.
function logMethod(originalMethod: any, context: ClassMethodDecoratorContext) {
const methodName = String(context.name);
function replacementMethod(this: any, ...args: any[]) {
console.log(`[LOG] Llamando a ${methodName} con`, args);
return originalMethod.apply(this, args);
}
return replacementMethod;
}
class UserService {
@logMethod
greet(name: string) {
return `¡Hola, ${name}!`;
}
}
3. Herencia de múltiples configuraciones (extends Array)
Antes de TS 5, tsconfig.json solo podía heredar configuraciones de una única configuración base. Ahora puedes pasar un array de archivos al campo extends.
Esto permite una modularidad más limpia: dividir mapeos de rutas, configuraciones de compilación y entornos objetivo en fragmentos reutilizables.
{
"extends": ["./tsconfig.base.json", "./tsconfig.paths.json"],
"compilerOptions": {
"strict": true
}
}
4. Resumen: Mejoras de rendimiento internas
Más allá de la sintaxis, la estructura del compilador de TypeScript 5 fue completamente refactorizada, eliminando namespaces pesados y reestructurando tipos de datos. Esto ha resultado en una reducción del 20-40% en los tiempos de compilación para bases de código medianas y grandes. Se recomienda encarecidamente actualizar tus dependencias para ciclos de compilación más rápidos.

