TypeScript 6.0 și viitorul său bazat pe Go

Ultima actualizare: 03/18/2026
  • TypeScript 6.0 este ultima versiune majoră a compilatorului JavaScript și pregătește proiectele pentru viitoarea versiune nativă TypeScript 7.0, bazată pe Go.
  • Actualizarea consolidează setările implicite (modul strict, ținte ES moderne, module ESM), adaugă noi API-uri pentru platformă și introduce un indicator de ordonare a tipurilor stabile.
  • Multe opțiuni și formate de module vechi (ES5, AMD/UMD/SystemJS, baseUrl, rezoluție clasică) sunt depreciate înainte de eliminarea lor completă în versiunea 7.0.
  • Creșterile de performanță obținute prin rescrierea Go promit construcții de aproximativ 7-10 ori mai rapide, un consum mai mic de memorie și instrumente de editare mai receptive pentru baze de cod mari.

Viitorul TypeScript 6.0 bazat pe Go

TypeScript 6.0 ajunge ca o versiune particulară: nu este doar o altă iterație mai mult, până la ultima entrega construită asupra compilatorului actual în JavaScript, el mismo que viene evolutiv din primele zile ale proiectului. De aici, tot focul se deplasează către TypeScript 7.0, o reimplementare nativă scrisă în Go pensada pentru a oferi compilații multísimo mai rapide, mic consum de memorie și un serviciu de limbaj mult mai reactiv în editori ca VS Code.

În practică, TypeScript 6.0 acționează ca un puente cu grijă proiectat între el linia 5.9 și viitorul 7.0: ajusta por defecto muchas opciones de compilación para alinearlas cu realitatea modernă a ecosistemului JavaScript, introduce noi capacități de tipado și APIs standard, și al mismo tiempo depreca buena parte de la herencia acumulada durante más de una década (targets antiguos, systems de modules obsoletos and banderas de configuration que ya no have sentido en 2026). Totuși, în timp ce se menține, în esență, cu același model de tipuri pe care dezvoltatorii pe care le cunosc.

TypeScript 6.0 ca ultima versiune a compilatorului clasic

Microsoft a clarificat că TypeScript 6.0 va fi ultima versiune mai mare susținută asupra codului compilatorului în JavaScript, cunoscut istoric ca „Strada”. Pornind de la 7.0, protagonismul trece cu un nou backend nativo în Go, cu un nume de cheie „Corsa”, care este disponibil în formă de builds nocturne și o extensie specifică pentru VS Code orientat a probes reales.

Esta reescritura în Go no cambia el lenguaje en sí, sino la tehnologie angajată pentru analiza, chequear y, când se necesita, emitir JavaScript. El objetivo este 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 și un consum de memoria elevado atunci când el dimensiunea monorepo se dispara.

El echipa a publicat cifre de performanță foarte agresive, care compară compilatorul actual cu nativul în proiecte reale. Codul ca el de VS Code (alrededor de 1,5 milioane de linii) pasa de tardar în torno a 77,8 secunde într-un análisis complet cu el compilador clasic a unos 7,5 secunde cu el compilador en Go, este decir, más de 10 veces mai rapid. Dramaturg, cu 356.000 de linii, cu 11,1 secunde la 1,1, și TypeORM, cu 270.000 de linii, de 17,5 la 1,3.

Estos números no solo implican builds más rápidas en CI; También a schimbat experiența diaria în el editor. În el propio monolito de VS Code, el timp de arranque del servicio de lenguaje cae aproximativ de 9,6 secunde la 1,2, cu o reducere a memoriei la jumătatea. Pentru multe echipamente, asta înseamnă că nu trebuie să accepte ca „normal” să aștepți câțiva secunde la fiecare dată când va deschide editorul sau executa un chequeo complet cu tsc --noEmit.

El salt de performance nu vine solo del hecho de compilare a cod nativo, dar și de capacitatea de a utiliza multi-threading cu memoria compartida. El compilator en Go poate paraleliza analiza într-un singur proiect și, de asemenea, orchestra compilația de multiple proiecte în paralel când se folosesc referințe ale proiectului și ale modului. --build. Totul combinat cu o nouă implementare de compilații incrementale.

Viitorul compilatorului TypeScript în Go

¿Por qué reescribir TypeScript în Go y no en Rust u alt idioma?

Una de las decisions more comentadas a fost la alegere de Go como lenguaje para el nou compilator, în loc de Rust, C++ și alte opțiuni tipic asociate cu randament ridicat. A primera vista poate surprinde, despre tot într-un ecosistem unde muchas herramientas de nouă generație (SWC, oxc, etc.) se reescrito în Rust.

El echipa de TypeScript a dat mai multe motive practice pentru aceasta apusă pentru Go: por un lado, su recolector de basura se adaptează foarte bine a los patrones de asignación de memoria, care exhibe un compilator, reducând la încărcătura de gestionare manualmente a memoriei într-un cod de această complejitate. Altfel, structura limbajului și modelul tipurilor permit o traducere relativ directă din codul TypeScript existent, în contrast cu stilul mai intruziv, care exigiría să-l țină pe Rust.

Și e mult la propria filosofie de Go: un limbaje simplu, cu puține forme „creative” de a face același lucru și o orientare puternică la claritatea codului. Când se tratează de menținerea unui proiect critic și de lungă viață, ca el compilator de TypeScript, este sencillez se traduce într-un cost de întreținere minor și într-o bază de cod mai accesibil pentru viitorii colaboratori.

Se presupune că nu se tratează o critică la Rust, deoarece o aliniere pragmatică între stilul Go și cultura TypeScript. Ambos lenguajes tienden a priorizar que las cosas „simplemente functionen” de forma predecible, por encima de la experimentación cu rasgos de lenguaje avanzados sau modeles de memorie extremadamente sofisticados care ar putea complica la viata diaria del equipo.

În paralel cu compilatorul, migrația profită și de adopția mai profundă a Protocolului de Servitor de Lenguaje (LSP), lo que facilitá că alți editori diferite de VS Code pot vorbi el mismo „idioma” cu noul backend și beneficiaza de randamentul său și depinde de integrări ad hoc specifice.

Ce aduce cu adevărat TypeScript 6.0 astăzi

Deși toată atenția medicală se află în compilatorul Go, TypeScript 6.0 introduce modificări reale și vizibile pe zi, despre toate în forma noilor valori prin defect, îmbunătățiri ale tipurilor și alinării cu ultimele specificații JavaScript.. La ideea este că, atunci când vine 7.0, la tranziție sea lo más suave posibil, deoarece majoritatea proiectelor au acceptat noile reguli ale jocului.

Uno de los cambios estrella este că el modo estricto (strict) pasa a estar activado por defecto. Durante años, muchas guías recomendaban arrancar orice proiect serios cu "strict": true, pero el valor por defecto seguía siendo false. 6.0 presupune că majoritatea dezvoltărilor moderne preferă un model de tipuri mai exigente, și rezervă opțiunea de dezactivare pentru cazurile puntuale adăugând explicit "strict": false en tsconfig.json.

De asemenea, se actualizează valorile implicite legate de modulele și targetul. El nuevo valor por defecto de module es esnext, reflectând că el ecosistema a fost decantat definitiv prin ESM ca format principal, ya sea direct en Node.js și browseres modernos sau tras trecerea printr-un bundler. A su vez, el target implicat să fie versiunea ECMAScript din anul mai recent pe care TypeScript suportă (de fapt es2025), un mișcare care asumă la omniprezența de runtimes evergreen și deja de optimizare pentru platforme tan vechi ca ES5.

O altă noutate importantă este aceea noUncheckedSideEffectImports viene acum activat por defecto. Esta opțiunea ajută să detecteze importurile care se realizează numai prin efectele secundare și prin faptul că a menudo scoate erori tipografice sau dependențe, care ar trebui să fie referite într-o formă explicită în cod. Activarea seriei ridică lista de robustețe a proiectelor noi.

În schimb, opțiunea libReplacement se dezactivează prin defecto, deoarece, în inmensa majoritate a proiectelor, nu face nimic util până la configurarea altor piese și, fără embargo, și anume un anumit cost în forma de rezoluții ale modulelor fallidas.. Con la tendencia general a simplificar ya no pagar por lo que no se usa, lo razonable era apagarla salvo ca un proiect la necesitate constient.

Cambios en inferencia y tipado: menos sensibilidad al contextului în funcții sin this

În plus, ajustările de configurare, TypeScript 6.0 include modificări interesante în cum infiere tipuri în unele patrone problematice. Un caz clasic se daba al trece literales de obiect con metodos donde una de las funciones avea parametri sin anotar și dependía del genérico inferido a partir de altă proprietate, lo que podía romperse în funcție de ordinea las claves.

În special, las funciones escritas con sintaxe de metodă au un parametru this implică faptul că a făcut ca compilatorul să trateze aceste apeluri ca „sensibile în context”. Când inferencia de tipuri pentru un generic și obținerea unui tip contextual tiraban în direcții opuse, TypeScript prefera să renunțe la apeluri la ora de a inferi, și a terminat cum ar fi unknown parametrii care în realitate sunt perfect determinati de alte părți din același literal al obiectului.

En 6.0, el compilador pasa a considera că o funcție nu este sensibilă în contextul și parametrul this nunca se utiliza dentro de su cuerpo. De această formă, o funcție declarată ca metodă, dar care nu face referire a this se tratează de forma foarte similară cu o funcție de săgeată, ceea ce permite să profite de o sursă de informații pentru inferencia de tipuri, independent de ordinea proprietăților în obiect.

Aceasta ajustare reduce o categorie de erori de tip confus unde el dezvoltator vede un parametru inferior unknown sin entender muy bien por qué. Se tratează un schimb de ergonomie pură: el model de tipos subyacente no cambia, pero la heurística de inferencia se alinea mai bine cu majoritatea dezvoltatorilor care speră să se întâmple în aceste cazuri simple.

Subpath imports cu prefijo #/ y mejoras en rezoluție de modules

TypeScript 6.0 se pune la zi cu suportul pentru importurile subpath, conform ultimelor specificații ale Node.js. Hasta hace poco, al declarar el campo imports en package.json, los alias internos debían empezar cu # urmat de algún text, de exemplu #root o #utils. Această restricție rezultă într-un atât arbitrar când el unicul obiectiv al alias era, în practică, ține un prefix stabilit pentru codul de producție.

Versiunile recente ale Node 20 permit definirea căilor secundare care pot fi aranjate #/, es decir, sin un identificador „intermedio” obligatorio. Sunt simplificate scheme foarte obișnuite, asemănătoare celor mai mulți dezvoltatori care folosesc bundlers, unde se preferă @/... o #/... ca rădăcină logică a proiectului.

TypeScript include acest comportament sub moduri de rezoluție a modulului node20, nodenext y bundler. Acest lucru înseamnă că proiectele care sunt utile "imports": { "#": "./dist/index.js", "#/*": "./dist/*" } en package.json pot acum beneficia de autocompletado și comprobare de tipuri coerente cu forma în care Node resuelve esas rute.

Otra îmbunătățire practică este posibilitatea de a combina --moduleResolution bundler cu --module commonjsPână acum, rezoluția bundler era limitată la module esnext o preserve, dar cu dezaprobarea --moduleResolution node (alias node10), multe baze de cod care continuă să emită CommonJS necesită o rută de migrare razonabilă. Esta combinație cubre tocmai ese hueco.

La nueva bandera –stableTypeOrdering și pregătirea pentru paralelism în 7.0

Uno de los cambios estructurales más profundos del compilador nativo în 7.0 este adopția unui model de analiză paralelă reală, donde múltiples „trabajadores” pot recorrer el árbol de sintaxis și el grafo de tipos în paralel. Esto plantează o problemă curios: și los IDs internos de tipos y símbolos dependen del orden en el que se descubren, el rezultat poate volverse no determinista când el orden de vizita deja de estar perfect definit.

În el compilator actual, los tipos primesc un identificator incremental în funcție de ordinea în care se află, aceste ID-uri se folosesc, între alte lucruri, pentru a ordona uniuni și liste de proprietăți.. Eso explica por qué en 5.x el orden de un tip ca 100 | 500 putea inversa 500 | 100 si se introduce una constante literal 500 antes que orice mención a 100 în fișier.

În 7.0, acest comportament este inacceptabil, deoarece executarea paralelă ar putea face ca procese diferite să fie generate diferite pentru același program.. La soluția a fost proiectată un algoritmo de ordonare determinist bazat în conținutul obiectelor de tip și simbol în locul în ordinea descoperirii. De esta manera, la misma unión siempre se imprima de la misma forma (100 | 500, de exemplu), independentmente de cómo se haya recorrido el código.

Pentru a ajuta echipamentele să detecteze discrepanțele înainte de a migra, TypeScript 6.0 introduce opțiunea --stableTypeOrdering. Al activarla, el compilador clasic adoptă la misma strategie de ordenación de tipos que utilizará 7.0, reducând astfel el ruido al compara ieșirile între ambas versions, special en ficheros de declaration emitidos and en messages of error.

Țineți cont de faptul că --stableTypeOrdering are un cost de performance apreciable, cu ralentizaciones de până la un 25% în unele proiecte. La recomandarea oficială se folosește forma táctica în timpul fazelor de migrare sau depurare a diferențelor, fără a fi configurat permanent în toate mediile.

Noi ținte și API-uri de platformă: es2025, Temporal, upsert și RegExp.escape

TypeScript 6.0 include ținta și ansamblul de biblioteci es2025 atât de mult pentru target ca și în cazul în care a lib. Deși ES2025 nu introduce noi construcții de limbaj, consolidează mai multe API-uri pe care le-am atins în starea finală în procesul de standardizare, așa cum RegExp.escape, noi metode în Promise, colecții și iteratoare.

En este nou nivel, unele declaraciones care antes vivían bajo esnext trece la es2025inclusiv Promise.try, noi metode de Iterator și operațiuni adăugate la Set. Acest lucru permite proiectele care pur și simplu apunte la standardul consolidat mai recent disfruten de acele API-uri nu au că optează pentru tot setul „experimental” de esnext.

Unul dintre cei mai mari protagonisti în 6.0 este încorporarea de tipuri pentru API Temporal, se așteaptă înlocuirea Date în JavaScript. Temporal, în stadiul 3 și în drumul de a se încorpora în platformă, oferă tipuri precise pentru instante, date, ore, zone orare și calendare, și evită multe erori clasice asociate sistemului de date actuale.

TypeScript expone los tipos de Temporal când se îndreaptă a esnext sau se indică explicit "lib": o "esnext.temporal". Este posibil să experimenteze cu Temporal astăzi în timpul de execuție, pe care îl suportați sau prin polyfills, cu suport complet de completare automată și verificare de tipuri.

Otra novedad că aterriza în domeniul colecțiilor este suportul tipurilor pentru metodele „upsert” de Map y WeakMap: getOrInsert y getOrInsertComputed. Formalizate într-o propunere ECMAScript, care a atins stadiul 4, aceste metode codifican un model foarte frecvent: „si existe la clave, úsala; si nu, inserta este valor (o el rezultat de esta función) și devuélvelo”.

cu getOrInsert, el código que antes a făcut o secvență de has, get, set y storage temporal poate reducese o apelare clară și tipada. Și getOrInsertComputed permite retrasarea calculului valorii defectului până când se confirmă cheia nu era prezentă, ceea ce evită costurile inutile atunci când rutele de execuție necesită în mod rar de rezervă.

În paralel, 6.0 tipa la noua funcție estática RegExp.escape, otra propuesta ya aprobada por TC39. Este metoda primește o cadență și devuelve o versiune de evadare sigură pentru interpolare în literales de expresii regulate, înțelegând dezvoltatorii de scris de memorie patrones de escape și reducând riscul de vulnerabilități sau bugs sutiles în căutares textuales.

Actualizări ale DOM și librerii globale: dom.iterable integrat și reconfigurarea lib

Libreria DOM de TypeScript primește și o postare pe zi în 6.0Fișierele lib.dom.iterable.d.ts y lib.dom.asynciterable.d.ts, care înainte se includ opționalmente pentru medii și suport pentru Iterable y AsyncIterable, se consideră acum parte integral de lib.dom.d.ts.

În practică, asta înseamnă că nu este necesar să adăugați "dom.iterable" a la matrice "lib" pentru a putea itera direct asupra colecțiilor DOM ca NodeList o HTMLCollection. Cu "lib": basta, algo lógico într-un mundo în care los navegadores și suport de iteratori sunt practic inexistente.

Si un proiect ya declaraba tanto dom ca dom.iterable, poate simplifica configurația fără pierdere de funcționalitate. Los nombres de librería adicionales siguen siendo válidos, pero sus archivos subyacentes au trecut a estar vacíos, deoarece tot su conținutul este fuzionat cu libreria principală a mediului web.

Un cambio de mucho más calado afecta al campo types de compilerOptions en tsconfig.jsonPână acum, când types nu se specifica, TypeScript escaneaba node_modules/@types e include forma implicită tuturor pachetelor de tipuri disponibile, introducând în domeniul global simbols procedentes de @types/node, @types/jest și alte pachete, deși codul nu este importat direct.

Acest comportament implică un cost important în proiecte mari sau monorepos, unde puteau coexista sute de dependențe tranzitive de tipuri, în plus de a introduce ruido și posibils conflictos între definiții globale care în realitate nu se necesită. En 6.0, el valor por defecto de types trece la a fi o serie de goluri [].

Consecința practică este că, de acum înainte, proiectele trebuie să declare explicit ce pachete de tipuri globale desean încărcat, de exemplu "types": . Multe echipamente de arătare a modului în care timpul de compilare a fost îmbunătățită sensibilmente (între un 20% și un 50% în funcție de datele care compară Microsoft) pur și simplu eliminați la încărcătura indiscriminată de tipuri care nu uzează niciodată.

Pentru că trebuie să păstrați comportamentul anterior de „încărcați tot”, există o opțiune de a pune "types": , care reactivará la enumerarea masiva de @types. Cu toate acestea, recomandarea puternică a echipului este selectivă și listată numai a pachetelor esențiale, atât de performanță ca de predictibilitate.

rootDir, tsconfig și alte ajustări de comportament

Otro cambio relevante în configurația defectului este noua semántică de rootDir. Antes, când nu se indică în mod expres, TypeScript infería la originea proiectului ca directorul comun care conținea toate fișierele de intrare fără declarații. Esto obligatoriu al compilatorului a analiza rutele tuturor fișierelor înainte de a începe a emitir, complicând la logica și añadând costul.

En 6.0, el valor por defecto de rootDir pasa a ser pur și simplu el directorio unde vive el tsconfig.jsonDoar în cazul executării tsc desde la linia de comenzi fără fichero de configurare se aplică apoi euristica de a inferi la rădăcină de la fișierele de intrare.

Si un proiect daba por sentado que la raíz común a codului fuente era, de exemplu, en ./src și așteptăm că fișierele compilate au terminat direct în ./dist, acum puteți găsi cu rute ca ./dist/src/index.js. Soluția este explicită în configurarea unui alt lucru "rootDir": "./src" și ajustarea patronului include in consecinta.

Există și un mic pero important schimbare în comportamentul CLI atunci când se invocă tsc cu numere de fișiere într-un director care conține un tsconfig.json. Hasta acum, el fichero de configurare se ignora în tăcere, ceea ce generează multă confuzie despre ce opțiuni se aplicau cu adevărat. De la 6.0, aceasta produce o eroare explicită, însoțită de mesajul respectiv tsconfig.json nu se va încărca în timp ce se va trece fișierele în linia de comenzi.

Si la intentia este tocmai ignorar el tsconfig.json și compilați fișiere de formă ad hoc, există un nou flag --ignoreConfig que desactiva ese error y deja actuar a tsc cu valorile proprii ale defectului, fără amestecuri cu configurația proiectului.

Deprecații cheie: ES5, sisteme de módulos clásicos, baseUrl și más

O parte substanțială a TypeScript 6.0 constă în marcarea ca obsolete sau eliminarea directă a opțiunilor și a comportamentelor pe care nu le încadrează în realitatea ecosistemului.. Toate aceste deprecieri se pot „silencia” în 6.0 prin "ignoreDeprecations": "6.0" în configurație, dar mesajul Microsoft este clar: în 7.0 deja vor exista.

En primer lugar, se deprecă el target es5, care a durat mult timp a fost cheie pentru a suporta navigatori vechi ca Internet Explorer. Cu desaparición de IE și hegemonia absoluta a navigatorilor evergreen, baza utilizatorilor care încă necesită ES5 ca ieșire primară este reziduală. El nuevo mínimo razonable pasa a ser es2015, y quien aún necesitate ES5 trebuie să recurriți la o unealtă externă suplimentară pentru downleveling.

Relacionado con esto, la bandera --downlevelIteration pierde sentido y se marca también como deprecada. Su único scop era controla semántica de iteratori al avizării la 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 modules, dejan de a estar soportados los valores amd, umd, systemjs y none pentru opțiune module. Aceste formate au fost fundamentale în timpii anteriori ai adopției masive de ESM și bundlers modernos, dar abia acum se folosesc în noi desarrollos. Dacă o aplicație depinde încă de ei, recomandarea este migrată a modulelor ECMAScript și a delega orice compatibilitate istorică într-un bundler sau într-o unealtă dedicată, sau bine rămâne temporar în rama 5.x.

În mod similar, --moduleResolution node (numit si node10) Y --moduleResolution classic se declara obsoletas en favor de nodenext y bundler. La prima reflectă con precizie el comportamentul actual al Node.js în materia rezoluției modulelor (include condițiile de export, package.json modernos, etc.), în timp ce a doua este gândită pentru scenele dominate de bundlers, Bun și alte instrumente similare.

Una de las deprecaciones que más impact poate avea în configuraciones existentes este la desaparición de baseUrl ca mecanism de căutare pentru module. Istoric se folosește pentru prefijar paths, dar, de asemenea, se consideră o rădăcină a căutării generale, ceea ce duceba a „resolver” imports, care în realitate jamás funcționarían în timp de execuție. En 6.0 se anima a elimina baseUrl y reemplazarlo por intrări de paths explícitas cu ruta completă, sau adăugați un comodín "*": solo în cazul de fapt, se dorește acest comportament de rădăcină virtuală.

Dispare și la posibilitate de fijar esModuleInterop y allowSyntheticDefaultImports a false. În timpul anilor, configurația recomandată a fost activată aceste opțiuni pentru a evita surprize la importarea modulelor CommonJS din codul ESM. Cu 6.0, el compilator asume por defecto el modo „interop seguro” și obliga a ajustar los imports care dependían de la semántica antigua, de exemplu, schimbând importurile stil import * as express from "express"; de import express from "express";.

Steagul alwaysStrict deja igualmente de poder dezactivarse. A efecte practices, todo el cod se consideră în mod estric de JavaScript, ceea ce afectează în principal utilizării cuvintelor rezervate ca await, static, public o private ca identificatori în codul „no estricto” și unele matice asupra valorii this en funcții. Cazurile care încă depind de aceste particularități trebuie refactorizate.

În cele din urmă, se elimină --outFile como opțiune de concatenación de multiple intrări într-un singur fichero de ieșire. În ziua de azi, majoritatea proiectelor se sprijină în bundlers ca Webpack, Rollup, esbuild, Vite o Parcel, mențineți un mini-bundler în TypeScript și nu țineți cont de o bună investiție. Quienes lo utilizaban necesitarán introduce o tool de empaquetado in your pipeline.

Modificări ale sintagmei și directivelor: spații de nume, import asserturi și no-default-lib

Mai multe opțiuni de compilator, TypeScript 6.0, de asemenea, curăța unele construcții de sintagme heredate care intră în conflict cu evoluția viitoare a JavaScript.. Un caz notable este el uzul cuvîntului clave module pentru a declara spații de nume, o costumație a primelor versiuni ale limbajului.

Desde hace años, la forma recomandată de declarare namespaces este con la palabra namespaceÎn timp ce module se iba marcando ca obsoleta en editoresCu versiunea 6.0, această utilizare de module pasa a considerase direct invalid, entre otras cosas, deoarece viitoares propunes de blocuri de module en JavaScript ar putea intra în colisión conceptuală cu esta sintaxis antigua.

Nu afectează declarațiile de module externi cu declare module "paquete" { ... }, que siguen plenamente soportadasDoar patronul este interzis. module Foo { ... } folosit ca și afară un namespace clasic încapsulând membri.

Otra piesa care se alinea cu standardele este el abandonat de la sintaxis de “import assertions” bazat pe cuvântul-cheie asserts. La propunerea originală a comitetului TC39 evolucionó către „atribute de import”, care folosește cuvântul with en su loc. În consecință, expresii ca import data from "./file.json" asserts { type: "json" } acum se marchează ca eroare și trebuie reescribirse utilizând with.

În cele din urmă, directiva de triple slash /// <reference no-default-lib="true"/> deja de a fi suportat. Esta anotación se folosește pentru a indica faptul că nu trebuie să se încarce la libreria standard pentru defect, dar a fost confusă și se va presta a malentendidos. A cambio, se recomandă utiliza flags claros como --noLib o --libReplacement în funcție de efectul dorit.

În domeniul analizei JavaScript cu JSDoc, compilatorul nativ profită de asemenea pentru a simplifica suportul patronilor speciali ca @enum o @constructor. Deși esto se concretizează mai mult în 7.0, ya se advierte que ciertos atajos „relajados” de tipado în fișiere .js deja vor funcționa de asemenea și pot dar loc a mai multe erori raportate, lo que empuja a documentar los tipos de forma mai explícita.

Visto în conjunto, TypeScript 6.0 remodela gran parte de los cimientos de configurare și compatibilitate acumulate în timpul mai multor decenii pentru adaptarea unui ecosistem unde ESM, browseres evergreen, bundlers modernos and tipado estricto son la norma, dejando el camino listo pentru că el compilador nativo în Go poate oferi o experiență de dezvoltare mai rapidă la maxim paralelism și o experiență istorică.

dactilografiat
Articol asociat:
TypeScript 5.9: Experiență îmbunătățită pentru dezvoltatori și o privire asupra viitorului
Postări asemănatoare: