- TypeScript 6.0 és l'última versió important del compilador de JavaScript i prepara projectes per al proper TypeScript 7.0 natiu basat en Go.
- L'actualització reforça els valors per defecte (mode estricte, objectius ES moderns, mòduls ESM), afegeix noves API de plataforma i introdueix un indicador d'ordenació de tipus estable.
- Moltes opcions i formats de mòduls antics (ES5, AMD/UMD/SystemJS, baseUrl, resolució clàssica) estan obsolets abans de la seva eliminació completa a la versió 7.0.
- Els guanys de rendiment de la reescriptura de Go prometen compilacions aproximadament de 7 a 10 vegades més ràpides, un ús de memòria més baix i eines d'edició més sensibles per a bases de codi grans.
TypeScript 6.0 arriba com una versió peculiar: no és només una altra iteració més, sinó la darrera entrega construïda sobre el compilador actual en JavaScript, el mateix que viene evolucionant des dels primers dies del projecte. A partir d'aquí, tot el focus es desplaça cap a TypeScript 7.0, una reimplementació nativa escrita en Go pensada per oferir compilacions moltíssimes més ràpides, menor consum de memòria i un servei de llenguatge molt més reactiu en editors com a VS Code.
En la pràctica, TypeScript 6.0 actua com un puente cuidadosament dissenyat entre la línia 5.9 i la futura 7.0: ajusta por defecto muchas opciones de compilación para alinearlas con la realidad moderna del ecosistema JavaScript, introduzca nuevas capacidades de tipado y APIs estándar, y al mismo tiempo depreca buena parte de la herencia acumulada durante más de una década (targets antics, sistemas de módulos obsoletos y banderas de configuración que no tienen sentido en 2026). Tot ell mentre manté, en l'essència, el mateix model de tipus que els desenvolupadors ja coneixen.
TypeScript 6.0 com a última versió del compilador clàssic
Microsoft ha deixat clar que TypeScript 6.0 serà l'última versió major sustentada sobre el codi del compilador en JavaScript, històricament conegut com a “Strada”. A partir de 7.0, el protagonisme passa al nou backend natiu en Go, amb el nom de clau “Corsa”, que està disponible en forma de builds nocturnes i una extensió específica per a VS Code orientada a proves reals.
Esta reescritura en Go no canvia el llenguatge en sí, sinó la tecnologia empleada per a analitzar, verificar i, quan sigui necessari, emetre JavaScript. L'objectiu és atacar de front problemes que s'han fet més visibles amb els anys: temps d'arranjar lents del servei de llenguatge en projectes grans, compilacions que s'allarguen minuts en CI i un consum de memòria elevat quan el tamany del monorepo es dispara.
L'equip ha publicat xifres de rendiment molt agressives que compara el compilador actual amb el natiu en projectes reals. Código com el de VS Code (alrededor de 1,5 milions de línies) passa de tardar en torn a 77,8 segons en un anàlisi complet amb el compilador clàssic a uns 7,5 segons amb el compilador en Go, és dir, més de 10 vegades més ràpid. Dramaturg, amb unes 356.000 línies, baixa de 11,1 segons a 1,1, i TypeORM, amb 270.000 línies, de 17,5 a 1,3.
Aquests números no només implican builds més ràpides en CI; també canvien l'experiència diaria en el editor. En el propi monolito de VS Code, el temps d'arranjament del servei de llenguatge cae aproximadament de 9,6 segons a 1,2, amb una reducció de memòria a la meitat. Per a molts equips, això significa que no fa falta acceptar com a “normal” esperar uns segons cada cop que s'obri l'editor o executin un xec complet amb tsc --noEmit.
El salt de rendiment no viene sol del fet de compilar un codi natiu, sinó també de la capacitat d'utilitzar multi-threading amb memòria compartida. El compilador en Go pot paralelitzar l'anàlisi dins d'un únic projecte i també organitzar la compilació de múltiples projectes en paral·lel quan s'empren referències del projecte i del mode. --build. Tot ell combinat amb una nova implementació de compilacions incrementals.
¿Por qué reescribir TypeScript en Go y no en Rust u otro idioma?
Una de les decisions més comentades ha estat l'elecció de Go com a llenguatge per al nou compilador, en el lloc de Rust, C++ i altres opcions habitualment associades a l'alt rendiment.. A primera vista pot sorprendre, sobre tot en un ecosistema donde muchas herramientas de nueva generación (SWC, oxc, etc.) se han reescrito en Rust.
L'equip de TypeScript ha fet diversos motius pràctics per a aquesta apuesta per Go: per un lado, el seu recol·lector de basura s'adapta molt bé als patrons d'assignació de memòria que exhibe un compilador, reduint la càrrega de gestionar manualment la memòria en un codi d'aquesta complejitat. Per un altre, l'estructura del llenguatge i el seu model de tipus permeten una translació relativament directa des del codi TypeScript existent, en contrast amb l'estil més intrusiu que exigiria portar tot a Rust.
També pesa molt la pròpia filosofia de Go: un llenguatge senzill, amb poques formes “creatives” per fer-ho mateix i una forta orientació a la claritat del codi.. Quan es tracta de mantenir un projecte crític i de llarga vida com el compilador de TypeScript, s'ha de traduir en un cost de manteniment menor i en una base de codi més accessible per a futurs col·laboradors.
Per suposat, no es tracta d'una crítica a Rust, sinó d'una alineació pragmàtica entre l'estil de Go i la cultura de TypeScript. Ambos lenguajes tienden a prioritzar que les coses “simplement funcionen” de forma predecible, per sobre de l'experimentació amb rasgos de llenguatge avançat o models de memòria extremadament sofisticats que podrien complicar la vida diària de l'equip.
En paral·lel al compilador, la migració també aprofita l'adopció més profunda del Protocolo de Servidor de Lenguaje (LSP), el que facilitarà que altres editors diferents de VS Code puguin parlar el mateix “idioma” amb el nou backend i beneficiar-se del seu rendiment sense dependre d'integracions ad hoc específiques.
Què aporta realment TypeScript 6.0 avui
Encara que tota l'atenció mediàtica es porta al compilador a Go, TypeScript 6.0 introdueix canvis reals i visibles el dia al dia, sobre tot en la forma de nous valors per defecte, millores de tipus i alineació amb les últimes especificacions de JavaScript.. La idea és que, quan llegue 7.0, la transició sea lo més suau possible perquè la majoria de projectes ja havien acceptat les noves regles del joc.
Uno de los cambios estrella es que el modo estricto (strict) passa a estar activat per defecto. Durant anys, moltes guies recomanaban arrancar qualsevol projecte seriós amb "strict": true, pero el valor per defecto seguía siendo false. 6.0 suposa que la majoria de desenvolupaments moderns prefereixen un model de tipus més exigent, i reserva l'opció de desactivar-se per a casos puntuals añadint explícitament "strict": false en tsconfig.json.
També s'actualitzen els valors predeterminats relacionats amb els mòduls i l'objectiu. El nou valor per defecto de module es esnext, reflectint que el ecosistema s'ha decantat definitivament per ESM com a format principal, ja sea director en Node.js i navegadors moderns o passar per un bundler. A la seva vegada, el target implícit passa a ser la versió ECMAScript de l'any més recent que TypeScript suporta (actualment es2025), un moviment que assumeix l'omnipresència de runtimes evergreen i deixa d'optimitzar per plataformes tan antigues com ES5.
Una altra novetat important és que noUncheckedSideEffectImports viene ahora activado por defecto. Aquesta opció ajuda a detectar les importacions que només es realitzen pels seus efectes secundaris i que sovint esconden errors tipogràfics o dependències que realment haurien de ser referenciades de forma explícita al codi. Activar la sèrie eleva el llistat de robustez dels projectes nous.
En canvi, l'opció libReplacement es desactiva per defecto perquè, en la inmensa majoria de projectes, no fa res útil fins que es configuran altres peces i, sense embargo, sí que ajuden a cert cost en forma de resolucions del mòdul fallides.. Amb la tendència general a simplificar ja no pagar per lo que no se usa, lo razonable era apagar la salvació que un projecte la necessitat conscientment.
Canvis en inferència i tipado: menys sensibilitat al context en funcions sense this
A més dels ajustos de configuració, TypeScript 6.0 inclou canvis interessants en com infiere tipus en alguns patrons problemàtics. Un cas clàssic es donava al passar literals d'objecte amb mètodes on una de les funcions tenia paràmetres sense anotar i dependía del genèric inferior a partir d'una altra propietat, el que podia trencar segons l'ordre de les claus.
En particular, les funcions escrites amb sintaxis de mètode tenen un paràmetre this implícit que hacía que el compilador tractase aquests callbacks com a “sensibles al context”. Quan la inferència de tipus per a un genèric i l'obtenció del tipus contextual tiraban en direccions propostes, TypeScript prefería saltar aquests callbacks a l'hora d'inferir, i acabava marcant com unknown els paràmetres que en realitat estaven perfectament determinats per altres parts del mateix literal de l'objecte.
En 6.0, el compilador passa a considerar que una funció no és sensible al context i al paràmetre this mai s'utilitza dins del seu cos. D'aquesta forma, una funció declarada com a mètode però que no fa referència a this es tracta de forma molt similar a una funció de fletxa, el que permet aprofitar com a font d'informació per a la inferència de tipus, independentment de l'ordre de les propietats a l'objecte.
Aquest ajust redueix una categoria d'errors de tipus confusos on el desenvolupador ve un paràmetre inferior com a unknown sin entendre molt bé per què. Es tracta d'un canvi d'ergonomia pura: el model de tipus subyacente no canvia, però la heurística d'inferència es alinea millor amb la majoria de desenvolupadors que espera que ocorri en aquests casos senzills.
Subpath imports amb prefix #/ i millores en resolució de mòduls
TypeScript 6.0 es posa al dia amb el suport de subpath imports segons les últimes especificacions de Node.js. Hasta hace poc, al declarar el camp imports en package.json, els àlies interiors havien de començar amb # seguit d'algun text, per exemple #root o #utils. Aquesta restricció resultava un tant arbitraria quan l'únic objectiu de l'àlies era, a la pràctica, tingués un prefix estable per al codi de producció.
Les versions recents de Node 20 permeten definir subcamins que s'arreglaran amb #/, és decir, sense un identificador “intermedio” obligatori. Això simplifica els esquemes molt habituals, semblants a molts desenvolupats que us fan servir amb bundlers, on us preferiu @/... o #/... com a raíz lògica del projecte.
TypeScript incorpora aquest comportament sota els modes de resolució del mòdul node20, nodenext y bundler. Això significa que projectes que utilicen "imports": { "#": "./dist/index.js", "#/*": "./dist/*" } en package.json poden ara gaudir d'autocompletat i comprovació de tipus coherents amb la forma en que Node resuelve aquestes rutes.
Una altra millora pràctica és la possibilitat de combinar --moduleResolution bundler amb --module commonjsFins ara, la resolució. bundler estava limitada a mòduls esnext o preserve, però amb la desaprovació de --moduleResolution node (àlies node10), moltes bases de codi que segueixen emetent CommonJS necessitaban una ruta de migració razonable. Esta combinació cubre precisament aquest hueco.
La nova bandera –stableTypeOrdering i la preparació per al paral·lelisme en 7.0
Un dels canvis estructurals més profunds del compilador natiu en 7.0 és l'adopció d'un model d'anàlisi paral·lel real, donde múltiples “trabajadores” poden recorrer l'arbre de sintaxis i el gràfic de tipus en paral·lel. Esto plantea un problema curiós: si els IDs interiors de tipus i símbols depenen de l'ordre en el que es descobreix, el resultat pot tornar a no determinista quan l'ordre de visita deixa d'estar perfectament definit.
En el compilador actual, els tipus reben un identificador incremental segons l'ordre en el que es troben, i aquests ID s'usen, entre altres coses, per ordenar unions i llistes de propietats.. Això explica per què en 5.x l'ordre d'un tipus com 100 | 500 podia invertir-se a 500 | 100 si es va introduir una constant literal 500 abans que qualsevol menció a 100 a l'arxiu.
En 7.0, aquest comportament es torna inacceptable, perquè l'execució paral·lela podria fer que dos processos diferents generaran ordres diferents per al mateix programa.. La solució ha estat dissenyada un algoritmo d'ordenació determinista basat en el contingut dels objectes de tipus i símbol al lloc de l'ordre de descobriment. De esta manera, la misma unión siempre se imprimirá de la misma forma (100 | 500, per exemple), independentment de cómo se haya recorrido el código.
Per ajudar els equips a detectar discrepàncies abans de migrar, TypeScript 6.0 introdueix l'opció --stableTypeOrdering. Al activar-la, el compilador clàssic adopta la mateixa estratègia d'ordenació de tipus que s'utilitzarà 7.0, reduint així el ruido al comparar sortides entre ambaix versions, especialment en fitxes de declaració emeses i missatges d'error.
Cal tenir en compte que --stableTypeOrdering té un cost de rendiment apreciable, amb ralentitzacions de fins a un 25% en alguns projectes. La recomanació oficial és utilitzar la forma tàctica durant les fases de migració o depuració de diferències, no com a configuració permanent en tots els entorns.
Nous objectius i APIs de plataforma: es2025, Temporal, upsert i RegExp.escape
TypeScript 6.0 incorpora el target i el conjunt de biblioteques es2025 tant per target com per lib. Encara que ES2025 no introdueix noves construccions de llenguatge, sí que consoliden diverses API que s'han aconseguit l'estat final en el procés d'estandardització, com RegExp.escape, nous mètodes en Promise, col·leccions i iteradors.
En aquest nou nivell, algunes declaracions que abans vivien sota esnext es mouen a es2025, incloent Promise.try, nous mètodes de Iterator i operacions afegides a Set. Això permet que projectes que simplement apunten al estàndard consolidat més recentment disfruten d'aquestes API no tenen que optar per tot el conjunt “experimental” 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 en JavaScript. Temporal, ja a l'etapa 3 i al camí de ser incorporat a la plataforma, ofereix tipus precisos per a instants, dates, hores, zones horàries i calendaris, i evita molts dels errors clàssics associats al sistema de dates actuals.
TypeScript exposa els tipus de Temporal quan s'apunta a esnext o s'indica explícitament "lib": o "esnext.temporal". Això és possible experimentar amb Temporal avui mateix en els temps d'execució que ja soportan o mitjançant polyfills, amb suport complet d'autocompletat i control de tipus.
Una altra novetat que s'atreveix a l'àmbit de les col·leccions és el suport de tipus per als mètodes “upsert” de Map y WeakMap: getOrInsert y getOrInsertComputed. Formalitzats en una proposta ECMAScript que ha aconseguit l'etapa 4, aquests mètodes codifican un patró molt freqüent: “si existeix la clau, úsala; si no, inserit aquest valor (o el resultat d'aquesta funció) i devuélvelo”.
Amb getOrInsert, el codi que abans tenia una seqüència de has, get, set i l'emmagatzematge temporal pot reduir-se a una trucada clara i tipada. I getOrInsertComputed permet retrasar el càlcul del valor per defecto fins que es confirma que la clau no estava present, el que evita costos innecessaris quan les rutes d'execució rarament requereixen el fallback.
En paral·lel, 6.0 tipa la nova funció estática RegExp.escape, una altra proposta ja aprovada per TC39. Aquest mètode rep una cadena i devuelve una versió escapada segura per a interpolar en literals d'expressions regulars, llevant als desenvolupadors d'escriure de memòria patrons d'escape i reduir el risc de vulnerabilitats o errors adequats a les cerques textuals.
Actualitzacions del DOM i llibreries globals: dom.iterable integrat i reconfiguració de lib
La llibreria DOM de TypeScript també rep una puesta al dia en 6.0. Els fitxers lib.dom.iterable.d.ts y lib.dom.asynciterable.d.ts, que abans s'incloïen opcionalment per als entorns sense suport de Iterable y AsyncIterable, es consideren ara part integral de lib.dom.d.ts.
En la pràctica, això significa que no és necessari afegir "dom.iterable" a la matriu "lib" per poder iterar directament sobre col·leccions DOM com NodeList o HTMLCollection. Amb "lib": basta, algo lògic en un món en el que els navegadors sense suport d'iteradors són pràcticament inexistents.
Si un projecte ja ha declarat tant dom com a dom.iterable, pot simplificar la seva configuració sense pèrdua de funcionalitat. Los nombres de librería adicionales siguen siendo válidos, pero los seus arxius subyacentes han passat a estar buits perquè tot el seu contingut s'ha fusionat amb la llibreria principal de l'entorn web.
Un canvi de molt més calat afecta al camp types de compilerOptions en tsconfig.jsonFins ara, quan types no s'especifica, TypeScript escaneaba node_modules/@types i inclou de forma implícita tots els paquets de tipus disponibles, introduint en l'àmbit global símbols procedents de @types/node, @types/jest i altres paquets, encara que el codi no s'importi directament.
Aquest comportament implicava un cost important en projectes grans o monorepos on poguessin coexistir centenars de dependències transitives de tipus, a més d'introduir ruido i possibles conflictes entre definicions globals que en realitat no es necessiten. En 6.0, el valor per defecto de types passa a ser una matriu buit [].
La conseqüència pràctica és que, a partir d'ara, els projectes han de declarar explícitament quins paquets de tipus globals volen carregar, per exemple "types": . Molts equips d'estiu com el seu temps de compilació millora sensiblement (entre un 20% i un 50% segons les dades que comparte Microsoft) simplement elimineu la càrrega indiscriminada de tipus que mai us.
Per quiens necessiten mantenir el comportament antic de “carregar-ho tot”, segueix existint l'opció de posar "types": , que reactivarà l'enumeració massiva de @types. No obstant això, la recomanació forta de l'equip és selectiva i llista només els paquets essencials, tant pel rendiment com per la predictibilitat.
rootDir, tsconfig i altres ajustaments de comportament
Un altre canvi rellevant en la configuració per defecto és la nova semàntica de rootDir. Abans, quan no s'indicava expressament, TypeScript inferiria l'arrel del projecte com el directori comú que contenia tots els fitxers d'entrada sense declaracions. Esto obligava 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 per defecto de rootDir passa a ser simplement el directori on viu el tsconfig.jsonNomés en cas d'execució tsc des de la línia de comandaments sense fitxar de configuració se segueix aplicant l'heurística d'inferir la raíz a partir dels fitxers d'entrada.
Si un projecte daba per sentat que la raíz comuna del seu codi fuente estava, per exemple, en ./src y esperaba que los archivos compilados acabasen directamente en ./dist, ara podeu trobar-vos amb rutes com ./dist/src/index.js. La solució és explícita en la configuració d'alguna manera "rootDir": "./src" i ajustar el patró de include en conseqüència.
Existeix també un petit però important canvi en el comportament de la CLI quan s'invoca tsc amb nombres d'arxiu en un directori que conté un tsconfig.json. Hasta ara, el fitxatge de configuració s'ignora silenciosament, el que generava molta confusió sobre quines opcions estaven aplicant realment. A partir de 6.0, això produeix un error explícit, acompanyat del missatge de que tsconfig.json no es carregarà mentre se'ls passa arxius a la línia de comandaments.
Si la intenció és precisament ignorar el tsconfig.json i compilar arxius de forma ad hoc, existeix una nova bandera --ignoreConfig que desactiva aquest error i deixa actuar a tsc amb els seus propis valors per defecto, sense barrejar-los amb la configuració del projecte.
Obligacions clau: ES5, sistemes de mòduls clàssics, baseUrl i més
Una part substancial de TypeScript 6.0 consisteix a marcar com a obsolets o eliminar directament opcions i comportaments que no encaixa amb la realitat del ecosistema.. Totes aquestes deprecacions poden "silenciar" en 6.0 mitjançant "ignoreDeprecations": "6.0" en la configuració, però el missatge de Microsoft és clar: en 7.0 deixaran d'existir.
En primer lloc, es depreca el target es5, que durant molt de temps va ser clau per suportar navegadors antics com Internet Explorer. Amb la desaparició d'IE i l'hegemonia absoluta dels navegadors evergreen, la base d'usuaris que encara requereix ES5 com a sortida primària és residual. El nou mínim razonable passa a ser es2015, i quien aún necesite ES5 haurà de repetir una eina externa addicional per a la baixada de nivell.
Relacionado amb això, la bandera --downlevelIteration pierde sentit i se marca també com a deprecada. El seu únic propòsit era controlar la semàntica d'iteradores al apuntar a ES5; en objectius moderns no té efecte algun, de manera que qualsevol ús d'ella en 6.0 dispara una advertència.
Per el lado dels mòduls, dejan d'estar suportats els valors amd, umd, systemjs y none per a l'opció module. Aquests formats van ser fonamentals en els temps anteriors a l'adopció massiva d'ESM i bundlers moderns, però avui apenas s'utilitzen en nous desenvolupaments. Si una aplicació depèn encara d'ells, la recomanació és migrar a mòduls ECMAScript i delegar qualsevol compatibilitat històrica en un bundler o en una eina dedicada, o bé romandre temporalment a la rama 5.x.
De la mateixa manera, --moduleResolution node (També anomenada node10) I --moduleResolution classic es declara obsoletes en favor de nodenext y bundler. La primera reflecteix la precisió del comportament actual de Node.js en la matèria de resolució de mòduls (incloent condicions d'exportació, package.json moderns, etc.), mentre que la segona està pensada per a escenaris dominats per bundlers, Bun i altres eines similars.
Una de les deprecacions que més impacte pot tenir en configuracions existents és la desaparició de baseUrl com a mecanisme de cerca per a mòduls. Històricament s'utilitza per a prefijar paths, però també es considerava una raíz de cerca general, el que portava a “resolver” imports que en realitat ja funcionarien en el temps d'execució. En 6.0 se anima a eliminar baseUrl i reemplaçarlo per entrades de paths explícites amb la ruta completa, o afegir un còmoda "*": sol en el cas de que de veritat es desee aquest comportament de la raíz virtual.
També desapareix la possibilitat de fijar esModuleInterop y allowSyntheticDefaultImports a false. Durant els anys, la configuració recomanada ha estat activada aquestes opcions per evitar sorpreses a importar mòduls CommonJS des del codi ESM. Amb 6.0, el compilador assumeix per defecto el mode “interop segur” i obliga a ajustar les importacions que depenien de la semàntica antiga, per exemple canviant les importacions d'estil. import * as express from "express"; per import express from "express";.
el flag alwaysStrict deixa igualment de poder desactivar-se. A efectes pràctics, tot el codi es considera en el mode estricte de JavaScript, el que afecta principalment a l'ús de paraules reservades com a await, static, public o private com identificadors en codi “no estricte” i alguns matics sobre el valor de this en funcions. Els casos que encara depenen d'aquestes particularitats hauran de refactoritzar-se.
Per últim, s'elimina --outFile com a opció de concatenació de múltiples entrades en un sol fitxa de sortida. Avui en dia, la majoria de projectes es recolzen en bundlers com Webpack, Rollup, esbuild, Vite o Parcel, mantenir un mini-bundler dins de TypeScript i no es considera una bona inversió. Si voleu utilitzar-lo, necessiteu introduir una eina d'empaquetat al seu pipeline.
Canvis de sintaxis i directives: espais de noms, asserts d'importació i no-default-lib
Més allá de les opcions de compilador, TypeScript 6.0 també neteja algunes construccions de sintaxis heredades que entren en conflicte amb l'evolució futura de JavaScript. Un cas notable és l'ús de la paraula clau module per declarar namespaces, un costum de les primeres versions del llenguatge.
Des de fa anys, la forma recomanada de declarar espais de noms és amb la paraula namespace, mentre que module se m'ha marcat com a obsoleta en editorsAmb la versió 6.0, aquest ús de module passa a considerar-se directament invàlid, entre altres coses perquè futures propostes de blocs de mòduls en JavaScript podrian entrar en colisión conceptual amb aquesta sintaxis antiga.
Això no afecta a les declaracions de mòduls externs amb declare module "paquete" { ... }, que siguen plenament soportadesNomés es prohibeix al patró. module Foo { ... } utilitzat com si fora un espai de noms clàssic encapsulant membres.
Una altra peça que s'alinea amb els estàndards és l'abandó de la sintaxi de “import assertions” basada en la paraula clau asserts. La propuesta original del comité TC39 evolucionó hacia “import attributes”, que emplean la palabra with en el seu lloc. En conseqüència, expressions com import data from "./file.json" asserts { type: "json" } ara es marca com a error i s'han de reescriure utilitzant with.
Finalment, la directiva de triple barra /// <reference no-default-lib="true"/> deixa de ser suportat. Aquesta anotació s'utilitzava per indicar que no havia de carregar-se les llibreries estàndard per defecte, però la seva semàntica era confusa i es prestava a malentendidos. A canvi, es recomana utilitzar flags clars com --noLib o --libReplacement segons lefecte desitjat.
En l'àmbit de l'anàlisi de JavaScript amb JSDoc, el compilador natiu també aprofita per simplificar el suport de patrons especials com a @enum o @constructor. Encara que això es concreta més en 7.0, ja s'advierte que certs atajos “relajats” de tipado en fitxers .js deixaran de funcionar igual i poden donar lloc a més errors reportats, el que empja a documentar els tipus de forma més explícita.
Visto en conjunt, TypeScript 6.0 remodela gran part dels fonaments de configuració i compatibilitat acumulats durant més d'una dècada per adaptar-se a un ecosistema on ESM, navegadors evergreen, bundlers moderns i tipado estricte son la norma, deixant el camí listo per al compilador natiu en Go pugui explotar ràpidament al màxim el paral·lelisme i una experiència històrica de desenvolupament molt més paral·lel.
