Se ha publicado la versión RC de TypeScript 7.0.
(devblogs.microsoft.com)Título: Anuncio de TypeScript 7.0 RC - reescrito en Go y aproximadamente 10 veces más rápido
Texto:
Microsoft anunció el Release Candidate de TypeScript 7.0. El punto clave es que durante el último año portaron la base de código existente de TypeScript a Go (la base de arranque que se compilaba a JS)
Gracias a la combinación de velocidad de código nativo y procesamiento paralelo con memoria compartida, muestra un rendimiento aproximadamente 10 veces superior frente a TypeScript 6.0
Se puede instalar de inmediato con npm install -D typescript@rc
Compatibilidad y estabilidad
No se reescribió desde cero, sino que se hizo un port sistemático de la implementación existente, por lo que la lógica de verificación de tipos es estructuralmente igual a la de 6.0
Se validó con la enorme suite de pruebas acumulada durante 10 años, y ya se está usando en bases de código de millones de líneas tanto dentro como fuera de Microsoft
Muchas empresas como Bloomberg, Canva, Figma, Google, Linear, Notion, Slack y Vercel probaron compilaciones preliminares durante más de un año, y la mayoría dio comentarios positivos indicando reducciones importantes en el tiempo de compilación
Control de paralelización
Realiza en paralelo el parsing, la verificación de tipos y el emit. Con la bandera --checkers se puede ajustar la cantidad de workers del verificador de tipos (valor predeterminado: 4), con la bandera --builders se puede paralelizar la compilación de referencias de proyecto (útil para monorepos), y con --singleThreaded se puede forzar el modo de un solo hilo
Modo --watch mejorado
Se portó a Go el file-watcher del bundler Parcel para mejorar notablemente el rendimiento de monitoreo de archivos multiplataforma
Uso en paralelo con 6.0 (side-by-side)
La API programática estable recién está prevista para 7.1 (dentro de algunos meses)
El paquete compatible @typescript/typescript6 ofrece el ejecutable tsc6, lo que permite usar 6.0 y 7.0 juntos sin conflictos. Se recomienda usar alias de npm
Principales cambios de valores predeterminados / Breaking Changes
strict ahora tiene como valor predeterminado true, module ahora tiene como valor predeterminado esnext, y stableTypeOrdering se activa de forma obligatoria
Muchas opciones obsoletas como target: es5, downlevelIteration, moduleResolution: node/node10/classic, module: amd/umd/systemjs, baseUrl y otras pasan a convertirse en errores duros
Los tipos de template literal ahora manejan de forma natural los puntos de código Unicode ("😀abc" → ["😀", "abc"])
El soporte para JavaScript (basado en JSDoc) fue reestructurado para que sea más consistente con la forma de análisis de archivos .ts
Experiencia en el editor
Se ofrece la extensión TypeScript Native Preview para VS Code, basada en LSP y con uso de multihilo. Se afirma que, en comparación con 6.0, los comandos del language server que fallan se redujeron más de 20 veces
Calendario: la versión final 7.0 está prevista para lanzarse dentro de aproximadamente un mes. Están solicitando activamente comentarios de pruebas en proyectos reales
Aún no hay comentarios.