- TypeScript 6.0 er den siste store utgivelsen av JavaScript-kompilatoren og forbereder prosjekter for den kommende, native Go-baserte TypeScript 7.0.
- Oppdateringen strammer inn standardverdiene (streng modus, moderne ES-mål, ESM-moduler), legger til nye plattform-API-er og introduserer et stabilt flagg for typebestilling.
- Mange eldre alternativer og modulformater (ES5, AMD/UMD/SystemJS, baseUrl, klassisk oppløsning) er utdatert før de fjernes fullstendig i 7.0.
- Ytelsesgevinster fra Go-omskrivingsløftet er omtrent 7–10 ganger raskere bygg, lavere minnebruk og mer responsive redigeringsverktøy for store kodebaser.
TypeScript 6.0 på samme måte som en særegen versjon: ingen er alene eller flere gjentatte versjoner, og den siste versjonen av den faktiske kompilatoren i JavaScript, el mismo que viene evolucionando desde los primeros días del proyecto. En del av dette, todo el foco se desplaza hacia TypeScript 7.0, una reimplementación nativ escrita no Go pensada para of recer compilaciones muchisimo mer rápidas, menor consumo de memoria and un service de lenguaje mucho mer reactivo and Code Editores com.
En la práctica, TypeScript 6.0 fungerer som en puente cuidadosamente diseñado entre la linje 5.9 og fremtiden 7.0: ajusta por defecto muchas opciones de compilación para alinearlas con la realidad moderna del ecosistema JavaScript, introduser nuevas capacidades de tipado y APIs estándar, y al mismo tiempo depreca buena parte de la herencia acumulada durante más de una siste decaóda (y al mismo tiempo depreca buena parte de la herencia acumulada durante más de una siste decaóda,y banderas de konfigurasjon que ya no tienen sentido en 2026). Todo ello mientras mantiene, en esencia, el mismo modello de tipos que los desarrolladores ya conocen.
TypeScript 6.0 som den siste versjonen av den klassiske kompilatoren
Microsoft har klart å bruke TypeScript 6.0 til den siste versjonen av ordføreren har blitt oppdatert på JavaScript-kompilatorens historikk som "Strada". En del av 7.0, er hovedrollen for en ny backend i Go, med navnet "Corsa", som er tilgjengelig i form av bygging av natt og en spesiell utvidelse for VS Code orientada a pruebas reales.
Esta reescritura no Go no cambia el lenguaje en sí, sino la tecnología empleada para analizar, check y, cuando se necesite, emitir JavaScript. El objetivo es atacar de frente problemas que se han ido haciendo más visibles con los años: tiempos de arranque lentos del servicio de lenguaje en proyectos grandes, compilaciones que se alargan minutos en CI y un consumo de memoria elevado cuando cuando el tamaño.
El equipo ha publicado cifras de rendimiento muy agresivas que comparan el compilador faktiske con el nativo en proyectos reales. Código como el de VS Code (alredor de 1,5 milliones de líneas) pasa de tardar en torno a 77,8 segundos en un análisis completo con el compilador clásico a unos 7,5 seconds con el compilador en Go, es decir, more de 10 veces. Dramatiker, med 356.000 linjer, baja de 11,1 segundos a 1,1, y TypeORM, med 270.000 linjer, de 17,5 a 1,3.
Estos números no solo implican builds más rápidas en CI; también cambian la experiencia diaria en el editor. En el propio monolito de VS Code, el tiempo de arranque del servicio de lenguaje cae aproximadamente de 9,6 segundos a 1,2, con una reducción de memoria a la mitad. Para muchos equipos, eso significa que ya no hace falta aceptar como "normal" esperar varios segundos cada vez que abren el editor o ejecutan un chequeo completo con tsc --noEmit.
El salto de rendimiento no viene solo del hecho de compilar a código nativo, sino también de la capacidad de usar multi-threading con memoria compartida. Den kompilatoren en Go puede paralelizar el análisis dentro de un único proyecto y también orquestar la compilación de múltiples proyectos en paralelo cuando se emplean referencias de proyecto y el modo --build. Todo ello combinado con una nueva implementación de compilaciones incrementales.
¿Hvis du vil skrive om TypeScript no Go y no en Rust du andre lenguaje?
Una de las decisiones más comentadas har sido la elección de Go como lenguaje para el nuevo compilador, en lugar de Rust, C++ u otras opciones típicamente asociadas alto rendimiento. En primera vista puede sorprender, sobre todo en un ecosistema donde muchas herramientas de nueva generación (SWC, oxc, etc.) se han reescrito en Rust.
TypeScript-utstyret har ulike motivos prácticos for esta apuesta por Go: por un lado, su recolector de basura se adapta muy bien a los patrones de asignación de memoria que exhibe un compilador, reduciendo la carga de gestionar manualmente la memoria en un código de esta complejidad. Ellers, strukturen på lenguaje y su modello de tipos permiten una traslación relativamente directa desde el código TypeScript existente, and contraste con el estilo mas intrusivo que exigiría portar todo a Rust.
También pesa mucho la propia filosofía de Go: un lenguaje sencillo, con pocas formas "creativas" de hacer lo mismo y una fuerte orientación a la claridad del código. For å se trata de mantener un proyecto crítico y de larga vida como compilator de TypeScript, esta sentcillez se traduce en un coste de mantenimiento menor y en una base de código mer accessible para futuros colaboradores.
For supuesto, no se trata de una crítica a Rust, sino de una alineación pragmática entre el estilo de Go y la cultura de TypeScript. Ambos lenguajes tienden a priorizar que las cosas "simplemente funcionen" de forma predecible, por encima de la experimentación con rasgos de lenguaje avanzados eller modellos de memoria extremadamente sofisticados que podrían complicar la vida diaria del equipo.
En paralelo al compilador, la migración también aprovecha la adopción mer profunda del Protocolo de Servidor de Lenguaje (LSP), lo que facilitará que otros editores distintos de VS Code puedan hablar el mismo "idioma" con el nuevo backend y beneficiarse de su rendimiento sin depender de integraciones ad hoc específicas.
Qué aporta realmente TypeScript 6.0 hoy
Unnque toda la atención mediática se la lleve el compilador no Go, TypeScript 6.0 introduser cambios reales y visibles en el día a día, sobre todo en forma de new valores por defecto, mejoras de tipos y alineación with las últimas especificaciones. La ideen er que, cuando llegue 7.0, la transición sea lo mer suave posible porque la mayoría de proyectos ya habrán acceptado las nuevas reglas del juego.
Uno de los cambios estrella es que el modo estricto (strict) pasa a estar activado por defecto. Durante años, muchas guías recomendaban arrancar cualquier proyecto serio con "strict": true, pero el valor por defecto seguía siendo false. 6.0 asume que la mayoría de desarrollos modernos prefieren un modello de tipos más exigente, y reserve la opción desactivarlo para casos puntuales añadiendo explícitamente "strict": false en tsconfig.json.
También se aktualisering av standarder relacionados con módulos y target. El nuevo valor por defecto de module es esnext, reflejando que el ecosistema se ha decantado definitivamente por ESM como formato principal, ya sea directo en Node.js y navegadores modernos o tras pasar por un bundler. A su vez, el target implícito pasa a ser la version ECMAScript del año más reciente que TypeScript soporte (actualmente es2025), un movimiento que asume la omnipresencia de runtimes evergreen y deja de optimizar por plataformas tan antiguas como ES5.
En annen viktig nyhet er det noUncheckedSideEffectImports viene ahora activado por defecto. Esta opción ayuda a detectar imports que solo se realizan por sus efectos secundarios y que a menudo esconden errores tipográficos o dependencias que realmente deberían ser referenciadas de forma explícita en el código. Activarla de serie eleva el listón de robustez de los proyectos nuevos.
I stedet alternativet libReplacement se desactiva por defecto porque, en la inmensa mayoría de proyectos, no hace nada util hasta que se configuran otras piezas y, sin embargo, sí añade cierto coste en forma de resoluciones de módulo fallidas. Con la tendencia general a simplificar ya no pagar por lo que no se usa, lo razonable era apagarla salvo que un proyecto la necesite conscientemente.
Cambios en inferencia y tipado: menos sensibilidad al contexto en funciones sin this
Además de los configuración, TypeScript 6.0 inkluderer cambios interesantes and cómo infiere tips and algunos patrones problemáticos. Un caso clásico se daba al pasar literales de objeto con métodos donde una de las funciones tenía parámetros sin anotar y dependía del generico inferido a partir de otra propiedad, lo que podía romperse según el orden de las claves.
Spesielt las funciones escritas con sintaxis de método tienen un parámetro this implícito que hacía que el compilador tratase esos callbacks como "sensibles al contexto". Cuando la inferencia de tipos para un genérico y la obtención del tipo kontekstuell tiraban en direcciones opuestas, TypeScript prefería saltarse esos callbacks a la hora de inferir, y acababa marcando como unknown parámetros que en realidad estaban perfectamente determinados por otras partes del mismo literal de objeto.
En 6.0, compilador pasa a considerar que una función no es sensible all contexto si el parametro this nunca se utiliza dentro de su cuerpo. De esta forma, una función declarada como método pero que no hace referencia a this se trata de forma muy lignende en una pil funksjon, lo que permite aprovecharla como fuente de información para la inferencia de tipos, independientemente del orden de las propiedades en el objeto.
Este ajuste redusere una kategorien de feiles de tipo confusos donde el desarrollador veía un parámetro inferido como unknown sin entender muy bien por qué. Se trata de un cambio de ergonomia pura: El modell av tipos subyacente no cambia, men la heurística de inferencia se alinea mejor con lo que la mayoría de desarrolladores espera que ocurra en estos casos sencillos.
Subpath imports con prefijo #/ y mejoras and resolución de módulos
TypeScript 6.0 seponer al día con el soporte de subpath imports Según las últimas especificaciones de Node.js. Hasta hace poco, al declarar el campo imports en package.json, los alias internos debían empezar con # seguido de algún texto, por emplo #root o #utils. Esta restricción resultaba un tanto arbitraria cuando el único objetivo del alias era, en la práctica, tener un prefijo estable para el código de producción.
Las versiones recientes de Node 20 tillater definerte understier som kan finne sted #/, es decir, sin un identificador “intermedio” obligatorio. Esto simplifica esquemas muy habituales, likes a lo que muchos desarrolladores ya usan con bundlers, donde se prefiere @/... o #/... como raíz lógica del proyecto.
TypeScript inkorporerer este comportamiento bajo los modos de resolución de módulo node20, nodenext y bundler. Dette betyr at prosjekter kan brukes "imports": { "#": "./dist/index.js", "#/*": "./dist/*" } en package.json pueden ahora disfrutar de autocompletado y comprobación de tipos coherentes con la forma en que Node resuelve esas rutas.
Otra mejora práctica es la posibilidad de combinar --moduleResolution bundler med --module commonjsTil nå, løsningen bundler var begrenset til moduler esnext o preserve, men med avskrivningen av --moduleResolution node (alias node10), muchas bases de código que siguen emitiendo CommonJS necesitaban una ruta de migración razonable. Esta combinación cubre precisamente ese hueco.
La nueva bandera –stableTypeOrdering y la preparación para paralelismo no 7.0
Uno de los cambios estructurales mer profundos del compilador nativo en 7.0 es la adopción de un modelo de análisis paralelo real, donde múltiples “trabajadores” pueden recorrer el árbol de sintaxis y el grafo de tipos en paralelo. Esto plantea un problema curioso: si los IDs internos de tipos y símbolos dependen del orden en el que se descubren, el resultado puede volverse no determinista cuando el orden de visita deja de estar perfectamente definido.
En faktisk kompilator, los tipos reciben un identificador incremental según el orden en el que se encuentran, y estos IDs se usan, entre otras cosas, para ordenar uniones y lists de propiedades. Eso explica por qué en 5.x el orden de un tipo como 100 | 500 podía invertirse a 500 | 100 si se introducía una konstante bokstavelig 500 ante que cualquier mención a 100 i filen.
En 7.0 este comportamiento se vuelve inacceptable, porque la ejecución paralela podria hacer que dos processos distintos generasen órdenes diferentes para el mismo programa. La løsningen har sido diseñar un algoritmo de ordenación determinista basado en el contenido de los objetos de tipo y símbolo en lugar de en el orden de descubrimiento. De esta manera, la misma unión siempre se imprimirá de la misma forma (100 | 500, por ejemplo), independientemente de cómo se haya recorrido el código.
For ayudar a los equipos and detectar discrepancias antes de migrar, TypeScript 6.0 introduserer opción --stableTypeOrdering. Al activarla, den klassiske kompilatoren adopterer en misma estrategia de ordenación de tipos que usará 7.0, reduser som el ruido al sammenligne salidas entre ambas versjoner, especialmente en ficheros declaración emitidos y en mensajes de error.
Du må huske på det --stableTypeOrdering tiene un coste de rendimiento apreciable, con ralentizaciones de hasta un 25% en algunos proyectos. Den offisielle anbefaling av forma taktikk vare migrasjonsfaser eller depuración de diferencias, ingen como konfigurasjon permanent en todos los entornos.
Nye mål y APIs de plataforma: es2025, Temporal, upsert y RegExp.escape
TypeScript 6.0 inneholder mål og biblioteker es2025 så mye for target som for lib. Aunque ES2025 ingen introdusere nye konstruksjoner av lenguaje, og konsoliderte varias API-er som allerede er ferdige i finalen i estandarización, como RegExp.escape, nye metoder i Promise, samlinger og gjenskapere.
En este nuevo nivel, algunas declaraciones que ante vivían bajo esnext flytte til es2025inkludert Promise.try, nye metoder for Iterator og andre adidas-operasjoner Set. Esto permite que proyectos que simplemente apunten al estándar consolidado más reciente disfruten de esas APIs sin tener que optar por todo el conjunto "eksperimentell" de esnext.
Uno de los grandes protagonistas en 6.0 es la incorporación de tipos para la API Temporal, la esperada sustituta de Date i JavaScript. Temporal, ya en stage 3 y en camino de ser incorporada a la plataforma, ofrece tipos precisos para instantes, fechas, horas, zonas horarias y calendarios, y evita muchos de los errores clásicos asociados al sistema de fechas actual.
TypeScript expone los tipos de Temporal cuando se apunta a esnext eller indikerer tydelig "lib": o "esnext.temporal". Det er mulig å eksperimentere med tidsmessige løpetider for mediante polyfills, med fullføring av autokomplettering og tippesjekk.
Otra novedad que aterriza en el ámbito de colecciones es el soporte de tipos para los métodos "upsert" de Map y WeakMap: getOrInsert y getOrInsertComputed. Formalizados en una propuesta ECMAScript que ha alcanzado stage 4, estos métodos codifican un patrón muy frecuente: "si existe la clave, usala; si no, inserta este valor (o el resultado de esta función) y devuélvelo".
med getOrInsert, el código que ante hacía una secuencia de has, get, set y almacenamiento temporal puede reducirse a una lamada clara y tipada. og getOrInsertComputed permite retrasar el cálculo del valor por defecto hasta que se confirma que la clave no estaba presente, lo que evita costes innecesarios cuando las rutas de ejecución raramente requieren el fallback.
En paralelo, 6.0 tipa la nueva función estática RegExp.escape, andre propuesta ya tested by TC39. Este método recibe una cadena y devuelve una versjon escapada segura para interpolar en literales de expresiones regulares, librando a los desarrolladores de escribir de memoria patrones de escape y reduciendo el riesgo de vulnerabilidades or bugs sutiles.
Actualizaciones del DOM y librerías globales: dom.iterable integrert y reconfiguración de lib
DOM-biblioteket av TypeScript ble sendt til 6.0Filene lib.dom.iterable.d.ts y lib.dom.asynciterable.d.ts, que antes se incluían opcionalmente para entornos sin soporte de Iterable y AsyncIterable, se consideran ahora parte integral de lib.dom.d.ts.
En la práctica, esto significa que ya no es necesario añadir "dom.iterable" à la matriz "lib" para poder iterar directamente sobre colecciones DOM como NodeList o HTMLCollection. Med "lib": basta, algo lógico en un mundo en el que los navegadores sin soporte de iteradores son prácticamente inexistentes.
Si un proyecto ya declaraba tanto dom som dom.iterable, puede forenklet med konfigurasjonen sin funksjonelle funksjon. Los nombres de librería adicionales seguen siendo válidos, pero sus archivos subyacentes han pasado a estar vacíos porque todo su contenido se ha fusionado con la librería principal del entorno web.
Un cambio de mucho más calado afecta al campo types de compilerOptions en tsconfig.jsonTil nå, når types no se especificaba, TypeScript escaneaba node_modules/@types e incluía de forma implícita todos los paquetes de tipos disponibles, introduciendo en el ámbito global símbolos procedentes de @types/node, @types/jest y otros paquetes, aunque el código no los importase directamente.
Este comportamiento implicaba un coste importante en proyectos grandes o monorepos donde podían coexistir cientos de dependencias transitivas de tipos, además de introducir ruido y posibles conflictos entre definiciones globales que en realidad no se necesitaban. En 6.0, el valor por defecto de types ikke bli en vakuo-matrise [].
La consecuencia práctica es que, a partir de ahora, los proyectos deben declarar explícitamente qué paquetes de tipos globales desean cargar, por ejemplo "types": . Mye equipos verán cómo su tiempo de compilación mejora sensiblemente (entre un 20% y un 50% según los datas que comparte Microsoft) simplemente por eliminar la carga indiscriminada de tipos que nunca usan.
Para quienes necesiten mantener el comportamiento antiguo de "cargarlo todo", sigue existiendo la opción de poner "types": , que reactivará la enumeración masiva de @types. Ingen obstante, la recomendación fuerte del equipo es ser selectivo y listar solo los paquetes esenciales, tanto por rendimiento como por predictibilidad.
rootDir, tsconfig y otros juster sutiles de comportamiento
Otro cambio relevante en la configuración por defecto es la nueva semántica de rootDir. Antes, cuando no se indicaba expresamente, TypeScript infería la raíz del proyecto como el directorio común que contenía todos los archivos de entrada no declarativos. Esto obligaba al compilador a analizar rutas de todos los archivos antes incluso de empezar a emitir, complicando la lógica y añadiendo coste.
En 6.0, el valor por defecto de rootDir pasa a ser simplemente el directorio donde vive el tsconfig.jsonBare i utkastingssaken tsc desde la línea de comandos sin fichero de configuración se sigue aplicando la heurística de inferir la raíz a partir de los archivos de entrada.
Si un proyecto daba por sentado que la raíz común de su código fuente estaba, por ejemplo, en ./src y esperaba que los archivos compilados acabasen directamente en ./dist, ahora puede encontrarse con rutas como ./dist/src/index.js. La solución es explicitar en la configuración algo como "rootDir": "./src" og juster beskytteren include i consecuense.
Existe también un pequeño pero importante cambio en el comportamiento de la CLI cuando se invoca tsc con nombres de archivo en un directorio que ya contiene un tsconfig.json. Hasta ahora, el fichero de configuración se ignoraba silenciosamente, lo que generaba mucha confusión sobre qué opciones se estaban aplicando realmente. En del av 6.0, produserer en feileksplicito, acompañado del mensaje de que tsconfig.json no se cargará mientras se sigan pasando archivos en la línea de comandos.
Si la intención es precisamente ignorar el tsconfig.json y kompiler arkiver de forma ad hoc, eksisterer et nytt flagg --ignoreConfig que desactiva ese error y deja actuar a tsc con sus propios valores por defecto, sin mezclarlos con la configuración del proyecto.
Deprecaciones clave: ES5, sistemas av módulos clásicos, baseUrl og mer
En del vedlikehold av TypeScript 6.0 består av marcar como foreldet eller direkte eliminere alternativer y comportamientos que ya no encajan con la realidad del ecosistema. Todas estas deprecaciones se pueden "silenciar" en 6.0 mediante "ignoreDeprecations": "6.0" en konfigurasjon, men Microsoft er klar: en 7.0 dejarán de existir.
En primer lugar, se depreca el målet es5, que durante mucho tiempo fue clave for soportar navegadores antiguos como Internet Explorer. Con la desaparición de IE y la hegemonía absoluta de navegadores evergreen, la base de usuarios que todavía requiere ES5 como salida primaria es residual. El nuevo minimo razonable pasa a ser es2015, y quien aún necesite ES5 deberá recurrir a una herramienta externa addictional para downleveling.
Relacionado con esto, la bandera --downlevelIteration pierde sentido y se marca también como deprecada. Su único propósito era controlar la semántica de iteradores al apuntar a ES5; en objetivos modernos no tiene efecto alguno, de modo que cualquier uso de ella en 6.0 dispara una advertencia.
Por el lado de los módulos, dejan de estar soportados los valores amd, umd, systemjs y none for alternativ module. Estos formatos fueron fundamentales en los tiempos anteriores a la adopción masiva de ESM y bundlers modernos, men vi har alle emplean en nuevos desarrollos. Hvis du bruker dette, avhenger det av anbefaling og overføring av ECMAScript og delegar cualquier kompatibilitet med historic en un bundler o en una herramienta dedicada, o bien permanecer temporalmente en la rama 5.x.
Tilsvarende, --moduleResolution node (også kalt node10) Og --moduleResolution classic se declaran obsoletas en favor de nodenext y bundler. La primera refleja con precisión el comportamiento actual de Node.js en materia de resolución de módulos (inkludert betingelser for eksport, package.json modernos, etc.), mientras que la segunda está pensada para escenarios dominados por lignende buntere, Bun ientas otras.
Una de las deprecaciones que más impacto puede tener en configuraciones existentes es la desaparición de baseUrl som oppslagsmekanisme for modeller. Históricamente se usaba para prefijar paths, men también se vurderer una raíz de búsqueda general, lo que llevaba en "resolver" importer que en realidad jamás funcionarían en tiempo de ejecución. En 6.0 se anima en eliminar baseUrl y reemplazarlo por entradas de paths explícitas con la ruta completa, o añadir un comodín "*": solo en el caso de que de verdad se desee ese comportamiento de raíz virtual.
También desaparece la posibilidad de fijar esModuleInterop y allowSyntheticDefaultImports a false. Alltid anbefalt konfigurasjon har flere alternativer for evitar sorpresas som importerer moduler CommonJS desde Código ESM. Con 6.0, el compilador assume por defecto el modo “interop seguro” y obliga a justar los imports que dependían de la semántica antigua, por ejemplo cambiando importaciones estilo import * as express from "express"; av import express from "express";.
Flagget alwaysStrict deja igualmente de poder desactivarse. A efectos prácticos, todo el código se considera en modo estricto de JavaScript, lo que afecta principalmente al uso de palabras reservadas como await, static, public o private como identificadores en código "no estricto" ya algunos matices sobre el valor de this en funciones. Los casos que todavía dependan de estas particularidades deberán refactorizarse.
Til slutt blir det eliminert --outFile como opción de concatenación de múltiples entradas en un solo fichero de salida. Dado que hoy and the día la inmensa mayoría de proyectos se apoya en bundlers como Webpack, Rollup, esbuild, Vite o Parcel, mantener and mini-bundler dentro de TypeScript ya no seeing una buena inversión. Quienes lo utilizaban necesitarán introducir una herramienta de empaquetado en su pipeline.
Cambios de sintaxis y directivas: navnerom, importpåstander og no-default-lib
Det er alle kompilatoralternativer, TypeScript 6.0 kan også brukes til å konfigurere sintaxier for å komme i konflikt med JavaScript-utviklingen.. Un caso notable es el uso de la palabra clave module para declarar navnerom, una costumbre de las primeras versiones del lenguaje.
Desde hace años, la forma recomendada de declarar navneområder es con la palabra namespaceMens module se iba marcando como obsoleta en editoresMed 6.0, disse bruker module pasa a considerarse directamente inválido, entre otras cosas porque futuras propuestas de modulblokker no JavaScript podrían entrar en colisión konseptuell con esta sintaxis antigua.
Esto no afecta a las declaraciones de módulos externos con declare module "paquete" { ... }, que siguen plenamente soportadasBare forbyr patronen module Foo { ... } usado como si fuera un namespace clásico encapsulando miembros.
Otra pieza que se alinea con los estándares es el abandono de la sintaxis de "import påstander" basada en la palabra clave asserts. La propuesta original del comité TC39 evolucionó hacia "importattributter", que emplean la palabra with en su lugar. En konsecuencia, uttrykk som import data from "./file.json" asserts { type: "json" } ahora se marcan como error y deben reescribirse utilizando with.
Finalmente, direktivet om trippel skråstrek /// <reference no-default-lib="true"/> deja de ser støttet. Esta anotación se usaba para indicar que no debían cargarse las librerías estándar por defecto, pero su semántica era confusa y se prestaba a malentendidos. En cambio, anbefaler vi å bruke flagg som er klart --noLib o --libReplacement avhengig av ønsket effekt.
En el ambito del análisis de JavaScript med JSDoc, el compilador nativo también aprovecha para simplificar el soporte de patrones especiales como @enum o @constructor. Aunque esto se concreta más en 7.0, ya se advierte que ciertos atajos "relajados" de tipado en archivos .js dejarán de funcionar igual y pueden dar lugar a more errores reportados, lo que empuja a documentar los tipos de forma mer.
Visto en conjunto, TypeScript 6.0 remodela gran parte de los cimientos de configuración y compatibilidad acumulados vare mer de una década para adaptarlos a un ecosistema donde ESM, navegadores evergreen, bundlers modernos y tipado estricto son la compilation elamino, en deco-list pueda explotar al máximo el paralelismo y ofrecer una experiencia de desarrollo mucho más rápida sin arrastrar lastre histórico.
