Novedades en TypeScript 6.0
TypeScript 6.0 no es un lanzamiento típico de funcionalidades. Si actualizas esperando nueva sintaxis o cambios dramáticos en el sistema de tipos, te sorprenderás. Este lanzamiento se centra principalmente en modernizar los valores predeterminados, eliminar el lastre heredado y preparar el ecosistema para TypeScript 7.0 — la próxima versión nativa del compilador y las herramientas en Go. Comprender qué cambió y por qué te ahorrará horas de depuración después de actualizar.
Puntos Clave
- TypeScript 6.0 es un lanzamiento puente — la última versión construida sobre el compilador basado en JavaScript — diseñada para limpiar valores predeterminados y deprecaciones antes de que llegue la línea nativa de TypeScript 7.0.
- Varios valores predeterminados del compilador han cambiado, incluyendo
strict: true,module: "esnext", untargetflotante que actualmente se resuelve aes2025,types: [], ynoUncheckedSideEffectImports: true. Estos pueden causar errores de compilación si tu tsconfig dependía de comportamientos implícitos. - Las nuevas características de plataforma incluyen el target
es2025, tipos para la API Temporal,RegExp.escape,Map.getOrInsert, y entradas consolidadas de la librería DOM. - Múltiples opciones heredadas como
--moduleResolution node(el antiguo comportamiento denode10),--target es5, y formatos de módulos más antiguos están deprecados para la transición a TypeScript 7.0. Atiéndelos ahora para evitar una migración dolorosa más adelante.
TypeScript 6.0 Es un Lanzamiento Puente, No una Entrega de Funcionalidades
TypeScript 6.0 está intencionalmente posicionado como la última versión construida sobre el código base en JavaScript. Se espera que TypeScript 7.0 sea el sucesor nativo basado en Go, con compilaciones y rendimiento del editor mucho más rápidos. TypeScript 6.0 limpia los cimientos antes de que ocurra esa transición.
La implicación práctica: la mayoría de los cambios de TypeScript 6.0 se refieren a valores predeterminados de configuración y deprecaciones, no a nuevas características del lenguaje. Si tu proyecto ha estado acumulando opciones heredadas de tsconfig, ahora es el momento de abordarlas.
Novedades en TypeScript 6.0: Características de Alineación con la Plataforma
A pesar del enfoque en la transición, TypeScript 6.0 sí añade soporte significativo para APIs modernas de JavaScript.
Target ES2025 y Nuevos Tipos Integrados
TypeScript 6.0 añade es2025 como un valor válido para --target y --lib. Esto incluye tipos integrados para APIs como RegExp.escape, y también mueve algunas declaraciones de esnext a es2025.
También añade tipos integrados para APIs más nuevas que todavía se exponen a través de esnext:
RegExp.escape— escapa de forma segura caracteres especiales de regex en una cadena- API
Temporal— un reemplazo moderno paraDate, tipado bajoesnextotemporal.esnext Map.getOrInsertyMap.getOrInsertComputed— patrones de upsert más limpios paraMapyWeakMap, disponibles a través deesnext
// Antes: patrón verboso de upsert en Map
if (!map.has("key")) map.set("key", defaultValue)
const value = map.get("key")
// Después: limpio y conciso
const value = map.getOrInsert("key", defaultValue)
Consolidación de Tipos DOM
dom.iterable y dom.asynciterable ahora están fusionados en la librería base dom. Ya no necesitas listarlos por separado en tu tsconfig.json. Si estabas usando "lib": ["dom", "dom.iterable"], puedes simplificar a solo "lib": ["dom"].
Importaciones de Subrutas que Comienzan con #/
TypeScript ahora soporta importaciones de subrutas de Node.js usando el prefijo #/. Esto se mapea limpiamente al campo imports en package.json, y hace que la característica se sienta mucho más cercana a los patrones de alias que los usuarios de bundlers ya conocen.
Discover how at OpenReplay.com.
Cambios Disruptivos en TypeScript 6.0: Lo que Realmente Romperá tu Proyecto
Aquí es donde vive la mayor parte del esfuerzo de migración a TypeScript 6.0. Varios valores predeterminados del compilador han cambiado.
| Configuración | Valor Predeterminado en TypeScript 6.0 |
|---|---|
strict | true |
module | esnext |
target | versión ES soportada actual (es2025 hoy) |
types | [] (vacío) |
rootDir | directorio del tsconfig |
noUncheckedSideEffectImports | true |
El cambio de types: [] es uno de los más impactantes. Anteriormente, TypeScript incluía automáticamente cada paquete en node_modules/@types. Ahora no incluye nada por defecto. Los proyectos que dependen de globales de @types/node, @types/jest, o paquetes similares verán errores como:
Cannot find name 'process'. Try adding 'node' to the types field in your tsconfig.
Corrígelo explícitamente:
{
"compilerOptions": {
"types": ["node", "jest"]
}
}
El cambio de rootDir también es común. Si tus archivos de salida de repente aparecen en dist/src/index.js en lugar de dist/index.js, añade "rootDir": "./src" a tu tsconfig.
Otro cambio que vale la pena observar es noUncheckedSideEffectImports: true. Si tu código base tiene importaciones de solo efectos secundarios con errores tipográficos o resolución inestable, TypeScript 6.0 es más probable que las marque.
Deprecaciones en TypeScript 6.0: Qué Eliminar Antes de TypeScript 7
Estas opciones están deprecadas en 6.0 para la transición a TypeScript 7.0, y algunos comportamientos más antiguos ya han desaparecido:
--target es5(el target más bajo soportado ahora es ES2015)--moduleResolution node/--moduleResolution classic→ migra anodenextobundler--module amd,umd,systemjs,none--baseUrl→ mueve el prefijo directamente a tus entradas depaths--outFile→ usa un bundler como esbuild, Vite, o RollupesModuleInterop: falseyallowSyntheticDefaultImports: false- Sintaxis heredada de namespace
module Foo {}→ usanamespace Foo {} - Sintaxis de importación
assert→ reemplaza conwith
Puedes silenciar las advertencias de deprecación temporalmente con "ignoreDeprecations": "6.0" en tu tsconfig, pero esto debe tratarse como una solución provisional a corto plazo.
Actualización a TypeScript 6.0
Instala la versión candidata actual de 6.0 con:
npm install -D typescript@rc
Ejecuta tsc --noEmit y trabaja a través de los errores. La mayoría de los problemas provendrán del array types, rootDir, importaciones de efectos secundarios y opciones deprecadas.
Conclusión
TypeScript 6.0 es un lanzamiento de limpieza, no una exhibición de funcionalidades. Su propósito es retirar valores predeterminados heredados, alinear el compilador con JavaScript moderno y preparar el terreno para la línea nativa de TypeScript 7.0. Cuanto antes abordes estos cambios de migración — arrays types actualizados, valores explícitos de rootDir, problemas de importación de efectos secundarios y reemplazos de opciones deprecadas — más suave será tu camino hacia TypeScript 7.0.
Si quieres el desglose técnico completo del equipo de TypeScript, también puedes leer el anuncio oficial de TypeScript 6.0 RC.
Preguntas Frecuentes
Probablemente sí, si tu tsconfig dependía de valores predeterminados implícitos. La rotura más común proviene de que el campo types ahora tiene como valor predeterminado un array vacío, rootDir ahora apunta al directorio del tsconfig, y un manejo más estricto de las importaciones de efectos secundarios. Ejecuta tsc --noEmit después de actualizar para mostrar todos los errores antes de hacer cambios.
TypeScript 6.0 es el lanzamiento final construido sobre el compilador original basado en JavaScript. Se enfoca en limpiar valores predeterminados y deprecar opciones heredadas. Se espera que TypeScript 7.0 sea el sucesor nativo basado en Go, con compilaciones y herramientas de editor mucho más rápidas. La versión 6.0 es el paso de preparación para esa transición.
Sí. El antiguo modo de resolución node en TypeScript 6.0 se refiere al comportamiento heredado estilo node10 y está deprecado, y classic también ha desaparecido. Usa nodenext si tu proyecto se ejecuta directamente en Node.js, o bundler si dependes de una herramienta como Vite, Webpack, Bun o esbuild para resolver y empaquetar tus módulos.
Puedes, pero generalmente necesitarás establecer la opción module explícitamente si esnext no es lo que quieres. Si tu proyecto todavía emite CommonJS, especifica module como commonjs en tu tsconfig. Sin embargo, considera migrar hacia configuraciones de módulos modernos donde sea posible, ya que TypeScript 6.0 claramente favorece los flujos de trabajo actuales centrados en ESM.
Complete picture for complete understanding
Capture every clue your frontend is leaving so you can instantly get to the root cause of any issue with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data.
Check our GitHub repo and join the thousands of developers in our community.