Microsoft lanzó TypeScript 7.0 este verano, después de iniciar Project Corsa en marzo de 2025. El compilador llevaba una década escrito en TypeScript y ejecutándose sobre Node. Ahora su implementación funciona en Go. Microsoft informa de compilaciones completas entre 8 y 12 veces más rápidas en proyectos grandes y reales. También mejoran la carga de proyectos, las sugerencias, la búsqueda de todas las referencias y los diagnósticos del editor. Los tipos, los archivos tsconfig y los mensajes de error no cambian.

terminal
npm install -D typescript@latest
time npx tsc --noEmit

Las primeras mediciones incluyeron VS Code con 1.5M líneas. Su tiempo de compilación bajó de 77.8s a 7.5s, una mejora de 10.4x. Playwright, con 356K líneas, pasó de 11.1s a 1.1s, o 10.1x. TypeORM, con 270K líneas, pasó de 17.5s a 1.3s, o 13.5x. date-fns, con 104K líneas, bajó de 6.5s a 0.7s, o 9.5x. La cifra de 12x representa el extremo superior del rango de Microsoft. VS Code superó por poco 10x en esas primeras pruebas. El resultado depende del tamaño del proyecto y del número de núcleos de la CPU. Los proyectos grandes en equipos con más núcleos suelen acercarse al extremo superior.

Go se eligió para mantener la compatibilidad. El equipo recorrió el código existente archivo por archivo para conservar su comportamiento, incluidos los fallos existentes. El grafo de objetos del compilador conecta los nodos con sus padres y sus hijos, y los símbolos con sus declaraciones. Go puede expresar esas relaciones directamente mediante punteros y slices. Rust podría representarlas con Rc<RefCell<Node>> y referencias Weak. Ese camino habría exigido otro diseño del compilador. El recolector de basura de Go también encaja con las suposiciones de memoria de la implementación en JavaScript. Las goroutines y la memoria compartida permiten el procesamiento paralelo que aporta otra parte de la mejora.

TypeScript 6 ejecutaba parse, bind, check y emit en un único hilo de Node. TypeScript 7 reparte el parsing y el checking entre varias vías con memoria compartida antes del emit. El código nativo explica una parte del avance. El paralelismo aporta el resto.

La actualización utiliza npm install -D typescript@latest. El comando time npx tsc --noEmit permite comparar la duración antes y después del cambio.

TypeScript 7.0 todavía no tiene una API programática estable. Microsoft la ha previsto para 7.1. Las herramientas que llaman directamente al compilador aún no pueden usar la nueva implementación. Entre ellas están typescript-eslint y las herramientas de Vue, Svelte, Astro, MDX y las plantillas de Angular, que por ahora siguen con TypeScript 6. Las descontinuaciones antiguas generan ahora errores bloqueantes. El modo estricto está activado por defecto.