Tehnologie

TypeScript 7.0 este de 10 ori mai rapid — Vue, Svelte și Angular trebuie să aștepte

Adrian Kessler

Compilatorul TypeScript din VS Code obișnuia să petreacă 125 de secunde verificând o copie proaspătă a propriului cod al editorului. TypeScript 7.0 face aceeași treabă în 10,6 secunde. Microsoft nu a optimizat codul vechi — a portat întregul runtime al compilatorului din JavaScript în Go, deblocând paralelismul multi-core pe care un motor JavaScript nu îl poate oferi.

Portarea nu este o rescriere de la zero. Inginerii Microsoft au descris logica de verificare a tipurilor ca fiind structural identică cu cea din TypeScript 6.0 — aceleași reguli, același comportament, tradusă într-un limbaj care poate distribui munca pe mai multe nuclee CPU. Echipa a ales Go deoarece codul JavaScript original, bogat în funcții, se potrivea aproape unu-la-unu cu idiomurile Go. Noul runtime introduce și flaguri pentru controlul explicit al paralelismului: utilizarea –checkers 8 pe o stație de lucru modernă îmbunătățește construcția VS Code de 16,7 ori față de TypeScript 6. Verificarea tipurilor în CI-ul Slack a scăzut de la 7,5 minute la 1,25. Construcția Bluesky a trecut de la 24,3 secunde la 2,8. Modelul se menține în toate bazele de cod: câștigurile se acumulează pe măsură ce dimensiunea proiectului crește, deoarece plafonul este acum hardware-ul, nu runtime-ul.

TypeScript 7.0 este livrat fără o API programatică publică — interfața pe care instrumentele de build o folosesc atunci când apelează compilatorul din propriul cod. Fiecare verificator de tipuri pentru șabloane al unui framework web major depinde de aceasta. Instrumentele Volar ale Vue, serviciul de limbaj al Svelte, MDX, verificatorul de șabloane al Angular: niciunul dintre ele nu funcționează cu TypeScript 7.0. Instrumente precum ts-morph și ts-jest, care expun internals ale compilatorului TypeScript pentru refactorizare și testare, sunt de asemenea stricate. Microsoft a confirmat că API-ul de înlocuire este planificat pentru TypeScript 7.1, așteptat în octombrie. Proiectele care utilizează oricare dintre aceste frameworkuri sau instrumente nu ar trebui să facă upgrade încă.

Configurațiile de proiect mai vechi se confruntă cu un set separat de blocaje dure. TypeScript 7.0 transformă opțiunile pe care versiunea 6.0 le-a depreciat în erori de build dure: țintele de compilare ES5, formatele de module AMD și SystemJS, rezoluția clasică de module și cuvântul cheie assert la declarațiile de import fac ca build-ul să eșueze complet. Noul tsconfig.json implicit nu mai încarcă automat pachetele @types, ceea ce înseamnă că proiectele care se bazau pe descoperirea ambientală a tipurilor fără a-și declara explicit dependențele de tipuri vor eșua silențios la momentul importului. Microsoft oferă un shim de compatibilitate typescript@npm:@typescript/typescript6 pentru proiectele care trebuie să păstreze instrumentele TS6 funcționale alături de noul compilator.

Proiectele care depășesc aceste obstacole — aplicații simple Node.js sau Deno, aplicații browser care nu se bazează pe un sistem de șabloane de framework și biblioteci fără dependențe de API programatică — pot face upgrade cu o singură modificare în package.json. Suportul din editori urmează aceeași divizare: VS Code are o extensie dedicată TypeScript 7 disponibilă acum, iar suportul integrat își finalizează migrarea la Language Server Protocol, înlocuind designul mai vechi TSServer. WebStorm și alți editori care depindeau și ei de TSServer încă lucrează la această tranziție.

TypeScript 7.1, vizat în prezent pentru octombrie 2026, va livra noua API a compilatorului de care instrumentele Vue, Svelte, Angular și MDX au nevoie înainte de a putea migra. Când va sosi, câștigurile de performanță de la portarea Go de 15 luni vor ajunge la întregul ecosistem. Până atunci, paginile de proiect pentru Volar, SvelteKit și Angular recomandă să rămâneți la TypeScript 6.0.x.

Etichete: , , , ,

Discuție

Există 0 comentarii.