€0.00 — free as in speechtonight's forecast: clear skies over production Cache: warm · Deploys: fair, 0% rollbacks expectedset by moonlight, shipped before dawn · deploy freely Page A2

❦The Daily Commit❦ ☾The Nightly Build☽

Dev news, typeset daily — PHP · AI · The Wider Stack

The developer's evening paper — PHP · AI · The Wider Stack

martes, 20 de octubre de 2026 Vol. I — No. 824 · Edición matinalEdición vespertina EN DE FR ES

Dev · Noticias

TypeScript 7.0 acelera sus builds con un compilador en Go

Microsoft ha trasladado a Go el compilador de TypeScript 7.0, antes escrito en TypeScript y ejecutado sobre Node, dentro de Project Corsa.

seleccionado por Sönke

La compañía mide mejoras de 8 a 12 veces en compilaciones completas de proyectos grandes; VS Code llegó a 10,4 veces en las primeras pruebas. La API programática estable llegará en 7.1, así que varias herramientas siguen con TypeScript 6.

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.

Leer la fuente original (en inglés) ↗

Valora este artículo: 0

Tribuna de lectores

Aún no hay aportaciones — abre el debate.

← The Daily CommitThe Nightly Build — Page A1