Angular y TypeScript 7 (tsgo): el compilador 10x que aún no puedes usar
El compilador de TypeScript corre entre 7.7x y 11.9x más rápido desde julio. Angular todavía no puede usarlo. La versión 7.0 aterrizó como GA el 8 de julio de 2026 con el compilador reescrito en Go, pero Angular 22 exige TypeScript 6.0, y eso no es un accidente: es una consecuencia directa de lo profunda que es la integración entre los dos proyectos.
Este post explica por qué Angular tiene que esperar, qué está haciendo el equipo mientras tanto, y el setup híbrido que Microsoft recomienda hoy mismo si quieres empezar a morder el rendimiento de TS 7 en tus proyectos Angular.
TypeScript 7 en 60 segundos
La historia corta: Microsoft portó el compilador de TypeScript de JavaScript a Go. El anuncio original fue de marzo de 2025, de la mano de Anders Hejlsberg, y el objetivo era explícito: reducir la mayoría de los build times en 10x. - Fuente: A 10x Faster TypeScript
Dos años después, la promesa es número:
| Codebase | TS 6 | TS 7 | Speedup |
|---|---|---|---|
| VS Code | 125.7s | 10.6s | 11.9x |
| Sentry | 139.8s | 15.7s | 8.9x |
| Bluesky | 24.3s | 2.8s | 8.7x |
| Playwright | 12.8s | 1.47s | 8.7x |
| tldraw | 11.2s | 1.46s | 7.7x |
- Fuente: Announcing TypeScript 7.0
En producción la cosa se ve así: Slack bajó su type-check de CI de 7.5 minutos a 1.25 y eliminó el 40% del tiempo de su merge queue. Canva pasó de esperar 58 segundos por el primer error del editor a 4.8. - Fuente: misma fuente
El port fue fiel, no creativo: la lógica de type-checking es estructuralmente idéntica a TypeScript 6.0. El repo typescript-go se archivó el 1 de septiembre de 2026 y el código volvió al repo principal de TypeScript. El binario, que durante los previews se llamaba tsgo, vuelve a llamarse tsc. Instalas npm install -D typescript y ya.
Por qué Angular no puede usarlo hoy
Aquí viene la parte incómoda. El anuncio de GA lo dice sin rodeos: TypeScript 7.0 no incluye API programática. La nueva API llegará con TypeScript 7.1, y será diferente a la actual. - Fuente: Announcing TypeScript 7.0
¿Y por qué le importa a Angular? Porque el compilador de Angular está construido encima de la API de TypeScript. Jean Méche, del core team, lo explicó en GitHub: "Today, the Angular compiler is a Ts.Program that makes various calls to the ts compiler APIs to build your app". Sin API, no hay compilador Angular sobre TS 7. - Fuente: angular/angular#61634
El segundo bloqueo es el language service. TypeScript 7 reemplazó tsserver por un servidor basado en LSP, y los plugins de tsserver dejaron de funcionar. El Angular Language Service, que type-checkea tus templates en el editor, es exactamente ese tipo de plugin. - Fuente: Announcing TypeScript 7.0 Beta
La matriz oficial lo confirma: Angular 22.x requiere TypeScript >=6.0.0 <6.1.0. - Fuente: Angular version reference
Microsoft, por su parte, reconoció el caso en el propio anuncio de GA: los workflows con type-checking especializado en templates "like Angular will also likely not use TypeScript 7" hasta que exista la API. - Fuente: Announcing TypeScript 7.0
Lo que dice el equipo de Angular
El roadmap oficial dedica una sección al tema, y vale la pena leerla completa:
"Microsoft has spent the last year porting the TypeScript compiler to Go... Angular has perhaps one of the deepest integrations with the TypeScript compiler, which will require bigger architectural changes to support new tsgo-based workflows for both the compiler and language service. We're in the process of prototyping and exploring what this support would look like, and will deliver an Angular compiler that is compatible with tsgo."
- Fuente: Angular Roadmap
Tres lecturas de ese párrafo: hay compromiso público (van a entregar un compilador compatible con tsgo), cubre compilador y language service, y no hay fecha. La palabra "prototyping" es literal.
El trabajo se ve en el repo. Los issues pidiendo soporte (#61634 y #65492) se cerraron como not_planned con la explicación de que había que reescribir el compilador primero. Y en octubre de 2026 aparecieron PRs como el #71313, que corre tests del compilador contra el pipeline NGP (el nuevo preprocesador que prepara el terreno). Es la re-arquitectura que el roadmap describe. - Fuente: angular/angular#71313
Mi lectura de GDE: esto va para largo. Cuando llegue, será de las migraciones más profundas en la historia del framework, y prefiero un compilador bien reescrito que un parche apurado.
El setup híbrido que sí puedes usar hoy
Microsoft recomendó una combinación específica para proyectos Angular en el anuncio de GA: usar TypeScript 7 con tsc para detectar errores a nivel de proyecto desde el CLI, y TypeScript 6.0 para el editor. - Fuente: Announcing TypeScript 7.0
El paquete @typescript/typescript6 existe exactamente para esto: trae el binario tsc6 y re-exporta la API 6.0. Con aliases de npm puedes tener los dos compilers lado a lado:
// package.json
{
"devDependencies": {
"@typescript/native": "npm:typescript@^7.0.2",
"typescript": "npm:@typescript/typescript6@^6.0.2"
}
}
Con esto, tsc (que ahora es TS 7) te da el chequeo rápido de todo el proyecto, tsc6 queda disponible para las herramientas que consumen la API 6.0, y el editor sigue con el language service de TS 6 que entiende tus templates Angular. No reemplaza al ng build, ojo: es una red extra de seguridad en CI, no el build oficial.
# CI: fast type check with TS 7
npx tsc --noEmit -p tsconfig.json
En un monorepo con varios proyectos, la diferencia se nota de inmediato. Si ya estructuras tu workspace como conté en monorepositorios con Nx, agregar este chequeo global te cuesta una línea de CI.
Prepara tu app para el día que llegue
TS 6.0 existe como puente deliberado hacia TS 7. Microsoft fue claro: "TypeScript 6.0 acts as the bridge between TypeScript 5.9 and 7.0". - Fuente: Announcing TypeScript 6.0
Angular 22 ya te obligó a TS 6.0, así que estás a mitad de camino sin saberlo. Lo que queda de tu lado:
1. Elimina las deprecaciones con ignoreDeprecations. En 6.0 puedes silenciarlas; en 7.0 son errores duros. La lista: target: es5, moduleResolution: node (node10), module: amd/umd/systemjs, baseUrl, esModuleInterop: false, entre otras. Corre tu build sin el flag y arregla lo que aparezca. - Fuente: Announcing TypeScript 6.0
2. Activa stableTypeOrdering en tu CI. El orden de tipos cambia entre 6.0 y 7.0 porque TS 7 paraleliza; este flag iguala el comportamiento de 6.0 al de 7.0 y te deja detectar diferencias antes de que importen. - Fuente: misma fuente
3. Haz el test del contrato. Microsoft define la compatibilidad así: "Practically any TypeScript code that compiles cleanly with TypeScript 6.0 (with the stableTypeOrdering flag on, and without any ignoreDeprecations flag set) should compile identically in TypeScript 7.0". Un pipeline de CI que compile con 6.0 en condiciones estrictas es tu póliza de seguro. - Fuente: Announcing TypeScript 7.0
4. Revisa tus dependencias de la API de TypeScript. Si tienes tooling interno que importa typescript (codemods, generadores, transformaciones), está construido sobre la API JS que TS 7 no tiene. Esas herramientas vivirán en @typescript/typescript6 hasta que la API de 7.1 aterrice.
Tips finales
- No fuerces TS 7 en
ng build. Sin API programática, el compilador de Angular no puede correr sobre él. Los hacks que veas por ahí terminan en builds roto-silenciosos. - El chequeo barato primero.
tsc --noEmitcon TS 7 en CI antes de tocar nada más. Es el 80% del beneficio con el 5% del riesgo. - Mide antes de celebrar. Los 8-12x son builds completos de codebases enormes. Tu app de 200 archivos ya compilaba en 9 segundos; tu cuello de botella probablemente está en otra parte.
- Sigue el roadmap, no los rumores. Cuando el compilador compatible con tsgo tenga fecha, saldrá en angular.dev/roadmap antes que en cualquier thread de Twitter.
Si quieres el contexto completo del port a Go, con benchmarks, críticas de memoria y la estrategia de versionado, escribí una guía aparte: TypeScript 7 GA: la realidad del port a Go.
¿Tu proyecto ya compila limpio con stableTypeOrdering? ¿O tienes tooling interno enganchado a la API de TS que vas a tener que reescribir? Cuéntame en los comentarios.