Tecnología

TypeScript 7.0 compila 10 veces más rápido — Vue, Svelte y Angular tendrán que esperar

Adrian Kessler

El compilador de TypeScript dentro de VS Code solía tardar 125 segundos en revisar una copia nueva del código base del propio editor. TypeScript 7.0 hace el mismo trabajo en 10.6 segundos. Microsoft no optimizó el código antiguo — portó todo el runtime del compilador de JavaScript a Go, desbloqueando un paralelismo multi-núcleo que un motor de JavaScript no puede ofrecer.

El port no es una reescritura desde cero. Los ingenieros de Microsoft describieron la lógica de verificación de tipos como estructuralmente idéntica a TypeScript 6.0 — las mismas reglas, el mismo comportamiento, traducidas a un lenguaje que puede distribuir el trabajo entre núcleos de CPU. El equipo eligió Go porque el código base original, cargado de funciones en JavaScript, se mapeó casi uno a uno con los modismos de Go. El nuevo runtime también introduce banderas para control explícito de paralelismo: pasar –checkers 8 en una estación de trabajo moderna empuja la compilación de VS Code a una mejora de 16.7x sobre TypeScript 6. La verificación de tipos en CI de Slack pasó de 7.5 minutos a 1.25. La compilación de Bluesky pasó de 24.3 segundos a 2.8. El patrón se mantiene en todos los códigos base: las ganancias se acumulan a medida que crece el tamaño del proyecto, porque el límite ahora es el hardware, no el runtime.

TypeScript 7.0 se envía sin una API programática pública — la interfaz que las herramientas de compilación usan cuando llaman al compilador desde su propio código. Cada verificador de tipos de plantillas de los principales frameworks web depende de ella. Las herramientas Volar de Vue, el servicio de lenguaje de Svelte, MDX, el verificador de plantillas de Angular: ninguna funciona con TypeScript 7.0. Herramientas como ts-morph y ts-jest, que exponen las partes internas del compilador de TypeScript para refactorización y pruebas, también están rotas. Microsoft ha confirmado que la API de reemplazo está planeada para TypeScript 7.1, esperada para octubre. Los proyectos que usen cualquiera de esos frameworks o herramientas no deberían actualizar todavía.

Las configuraciones de proyectos antiguos enfrentan un conjunto separado de puntos de quiebre. TypeScript 7.0 convierte opciones que la versión 6.0 marcó como obsoletas en errores de compilación duros: los objetivos de compilación ES5, los formatos de módulo AMD y SystemJS, la resolución de módulos clásica y la palabra clave assert en declaraciones de importación hacen que la compilación falle por completo. El nuevo tsconfig.json predeterminado ya no carga automáticamente los paquetes @types, lo que significa que los proyectos que dependían del descubrimiento de tipos ambientales sin declarar explícitamente sus dependencias de tipo fallarán silenciosamente al importar. Microsoft proporciona un shim de compatibilidad typescript@npm:@typescript/typescript6 para proyectos que necesiten mantener las herramientas de TS6 funcionando junto al nuevo compilador.

Los proyectos que superen esos obstáculos — aplicaciones simples de Node.js o Deno, aplicaciones de navegador no construidas sobre un sistema de plantillas de framework, y bibliotecas sin dependencias de API programáticas — pueden actualizar con un solo cambio en package.json. El soporte del editor sigue la misma división: VS Code tiene una extensión dedicada de TypeScript 7 disponible ahora, y el soporte integrado está completando su migración al Protocolo de Servidor de Lenguaje (LSP), reemplazando el diseño anterior de TSServer. WebStorm y otros editores que también dependían de TSServer todavía están trabajando en esa transición.

TypeScript 7.1, actualmente previsto para octubre de 2026, enviará la nueva API del compilador que las herramientas de Vue, Svelte, Angular y MDX necesitan antes de poder migrar. Cuando llegue, las ganancias de rendimiento del port de 15 meses a Go alcanzarán a todo el ecosistema. Hasta entonces, las páginas de proyecto de Volar, SvelteKit y Angular recomiendan mantenerse en TypeScript 6.0.x.

Etiquetas: , , ,

Discussion

There are 0 comments.