Teknologi

TypeScript 7.0 kompilerer 10 ganger raskere — Vue, Svelte og Angular må vente

Adrian Kessler

TypeScript-kompilatoren i VS Code brukte tidligere 125 sekunder på å sjekke en fersk kopi av redaktørens egen kodebase. TypeScript 7.0 gjør samme jobb på 10,6 sekunder. Microsoft optimaliserte ikke den gamle koden — de porterte hele kompilatorens kjøretid fra JavaScript til Go, og låste opp flerkjerneparallellisme som en JavaScript-motor ikke kan tilby.

Porten er ingen nyutvikling fra bunnen av. Microsofts ingeniører beskrev typekontrolllogikken som strukturelt identisk med TypeScript 6.0 — samme regler, samme oppførsel, oversatt til et språk som kan spre arbeid på tvers av CPU-kjerner. Teamet valgte Go fordi den funksjonstunge JavaScript-kodebasen lot seg kartlegge nesten én-til-én til Go-idiomer. Den nye kjøretiden introduserer også flagg for eksplisitt parallellitetskontroll: med --checkers 8 på en moderne arbeidsstasjon oppnås en 16,7 ganger forbedring sammenlignet med TypeScript 6.0 for VS Code-bygg. Slacks CI-typekontroll gikk fra 7,5 minutter til 1,25. Blueskys bygg gikk fra 24,3 sekunder til 2,8. Mønsteret holder seg på tvers av kodebaser: gevinstene øker i takt med prosjektstørrelsen, fordi taket nå er maskinvaren, ikke kjøretiden.

TypeScript 7.0 leveres uten et offentlig programmeringsgrensesnitt (API) — grensesnittet byggverktøy bruker når de kaller kompilatoren fra sin egen kode. Alle større nettrammeverks maltypekontrollører er avhengige av dette. Vues Volar-verktøy, Sveltes språktjeneste, MDX, Angulars maltypekontrollør: ingen av dem fungerer med TypeScript 7.0. Verktøy som ts-morph og ts-jest, som eksponerer TypeScript-kompilatorens interne funksjoner for refaktorering og testing, er også ødelagte. Microsoft har bekreftet at erstatnings-APIet er planlagt for TypeScript 7.1, forventet i oktober. Prosjekter som bruker noen av disse rammeverkene eller verktøyene, bør ikke oppgradere ennå.

Eldre prosjektkonfigurasjoner står overfor en egen rekke harde stopp. TypeScript 7.0 gjør alternativer som versjon 6.0 avskrevet til harde byggfeil: ES5-kompileringsmål, AMD- og SystemJS-modulformater, klassisk moduloppløsning og nøkkelordet assert på importsetninger får alle bygget til å feile umiddelbart. Den nye standard-tsconfig.json laster ikke lenger inn @types-pakker automatisk, noe som betyr at prosjekter som stolte på automatisk typeoppdagelse uten å eksplisitt deklarere typeavhengighetene sine, vil feile stille ved importtidspunktet. Microsoft tilbyr en typescript@npm:@typescript/typescript6-kompatibilitetsshim for prosjekter som trenger å kjøre TS6-verktøy side om side med den nye kompilatoren.

Prosjekter som kommer seg forbi disse hindringene — rene Node.js- eller Deno-applikasjoner, nettleserapper som ikke er bygget på et rammeverks malsystem, og biblioteker uten avhengigheter til programmeringsgrensesnittet — kan oppgradere med en enkel endring i package.json. Redaktørstøtten følger samme skille: VS Code har en dedikert TypeScript 7-utvidelse tilgjengelig nå, og den innebygde støtten fullfører migreringen til Language Server Protocol, som erstatter den eldre TSServer-designen. WebStorm og andre redaktører som også var avhengige av TSServer, arbeider fortsatt med denne overgangen.

TypeScript 7.1, som foreløpig er planlagt til oktober 2026, vil levere det nye kompilator-APIet som Vue, Svelte, Angular og MDX-verktøy trenger før de kan migrere. Når det kommer, vil ytelsesgevinstene fra den 15 måneder lange Go-porten nå hele økosystemet. Inntil da anbefaler prosjektsidene for Volar, SvelteKit og Angular å holde seg til TypeScript 6.0.x.

Tagger: , , ,

Diskusjon

Det er 0 kommentarer.