TypeScript 5.5: qué cambió en el nuevo lanzamiento

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

TypeScript 5.5: qué cambió en el nuevo lanzamiento



El 14 de junio de 2024, el equipo de Microsoft presentó oficialmente el lanzamiento de TypeScript 5.5, una de las versiones más significativas del popular tipador estático para JavaScript. En esta nueva actualización, los desarrolladores no solo obtuvieron correcciones de errores, sino también una serie de potentes funciones que simplifican la escritura de código y mejoran el rendimiento. Veamos las principales novedades.



Declaraciones Aisladas (Isolated Declarations)

La novedad más esperada de TypeScript 5.5 es el soporte experimental del modo Isolated Declarations. Ahora el compilador puede generar archivos de declaración (.d.ts) para cada módulo de forma independiente, sin necesidad de cargar todo el proyecto. Esto es especialmente útil para grandes monorepositorios y compilaciones, donde acelerar el trabajo del compilador se vuelve crítico. El modo se puede activar mediante la bandera --isolatedDeclarations en tsconfig.json.



  • Aceleración de la compilación: la compilación aislada de tipos permite paralelizar el proceso y reducir el tiempo de espera.
  • <>Comodidad para bibliotecas: los autores de paquetes ahora pueden generar tipos actualizados más rápidamente.
  • Compatibilidad hacia atrás: el nuevo modo no rompe el código existente y se puede implementar gradualmente.


Control de fugas de memoria en closures

TypeScript 5.5 ha aprendido a advertir sobre posibles fugas de memoria relacionadas con closures. El compilador ahora analiza si un closure retiene referencias innecesarias a objetos grandes o elementos del DOM. Por ejemplo:

function setupHandler() {    const largeData = new Array(1000000).fill('x');    document.getElementById('btn')?.addEventListener('click', () => {        console.log('clicked');        // Anteriormente el compilador no advertía que largeData permanecía en memoria    });}

Ahora TypeScript emitirá una advertencia si detecta que un closure captura variables que no se utilizan dentro de él, pero que permanecen en memoria debido a la vinculación con el manejador. Esto ayuda a escribir código más eficiente sin necesidad de perfilado manual.



Inferencia de tipos mejorada para arrays y desestructuración

En la nueva versión, el mecanismo de inferencia de tipos se ha mejorado significativamente. TypeScript 5.5 ahora determina con mayor precisión los tipos en la desestructuración de arrays y tuplas. Por ejemplo, al trabajar con APIs que devuelven tuplas, el compilador ahora reconoce correctamente cada elemento:

function fetchUser() {    return [1, 'Alice'] as const;}const [id, name] = fetchUser(); // id: number, name: string (anteriormente era union)

Esto elimina la necesidad de anotaciones manuales adicionales y hace que el código sea más limpio.



Determinación automática de tipos desde JSDoc

Al usar allowJs y verificar archivos JavaScript, TypeScript 5.5 ha aprendido a inferir automáticamente tipos a partir de comentarios JSDoc incluso en casos complejos, como para callbacks con múltiples parámetros. Esto es especialmente relevante para proyectos que migran gradualmente de JS a TS.



Otras mejoras y correcciones

  • Optimización de velocidad: hasta un 15% de aceleración en la compilación para proyectos grandes gracias al almacenamiento en caché de resultados intermedios.
  • Nuevas banderas: --noUncheckedSideEffectImports prohíbe importaciones sin efectos secundarios si no se usan explícitamente.
  • Corrección de errores: se solucionaron más de 80 errores relacionados

Recommended Libraries