programmatūra · 5 min · 19.07.2026

TypeScript 7.0 laidiena kandidāts klāt: Go pārrakstītais kompilators pārbauda tipus aptuveni 10x ātrāk

Microsoft 18. jūnijā izlaida TypeScript 7.0 pirmo laidiena kandidātu — kompilatoru, kas gada laikā pārrakstīts no TypeScript uz Go un tipu pārbaudi veic aptuveni desmit reizes ātrāk nekā 6.0 versija. Stabilā 7.0 versija plānota mēneša laikā no kandidāta, tātad jūlijā.

Ātruma ieguvums nāk no diviem avotiem: kompilēta koda ātruma un koplietotās atmiņas paralēlisma. Vecais kompilators bija rakstīts pašā TypeScript un kompilēts uz JavaScript, tāpēc darbojās uz Node.js viena pavediena. Jaunais darbojas kā vietējais Go bināris un vienlaikus izmanto vairākus procesora kodolus.

Kāpēc Go dod desmitkārtīgu ieguvumu

TypeScript 7.0 veic parsēšanu, tipu pārbaudi un izvades ģenerēšanu paralēli. Microsoft skaidro, ka parsēšanu un izvadi lielākoties var veikt neatkarīgi katram failam, tāpēc šos soļus var sadalīt starp procesora kodoliem. JavaScript versijā tas nebija iespējams — valoda strādā uz viena pavediena, un koplietotā atmiņa starp pavedieniem tur praktiski neeksistē.

Komanda izvērtēja arī Rust, bet izvēlējās Go. Iemesls praktisks: Go struktūra ir tuva vecajam kodam un ļāva to pārnest gandrīz rindu pa rindai, savukārt Go gorutīnas ļāva sadalīt tipu pārbaudi starp kodoliem. Kods tika metodiski pārnests no esošās implementācijas, nevis uzrakstīts no jauna. Tipu pārbaudes loģika strukturāli sakrīt ar 6.0 versiju, tāpēc kompilators piemēro tās pašas semantikas. Pārrakstīšanas kods nesa kodnosaukumu Corsa; vecā koda bāze bija Strada.

Jaunā Go koda bāze tika pārnesta no esošās implementācijas, un tās tipu pārbaudes loģika ir strukturāli identiska TypeScript 6.0 — kompilators turpina piemērot tieši tos pašus noteikumus, kā iepriekš.

Skaitļi no VS Code koda bāzes

Vietējo kompilatoru pirmoreiz 2025. gada martā parādīja TypeScript galvenais arhitekts Anders Hejlsbergs. Microsoft toreiz publicēja mērījumus uz VS Code koda bāzes ar aptuveni miljonu koda rindu. Tipu pārbaude saruka no 77,8 sekundēm līdz 7,5 sekundēm. Projekta ielāde redaktorā saruka no 9,6 sekundēm līdz aptuveni 1,2 sekundēm. Atmiņas patēriņš nokrita līdz aptuveni pusei no iepriekšējā.

Pēdējais lēnais solis JavaScript rīkos

Tipu pārbaude bija pēdējais lielais JavaScript rīku ķēdes posms, kas joprojām darbojās uz JavaScript. Saišotāji jau sen bija pārgājuši uz vietējo kodu: esbuild rakstīts Go, SWC un Biome — Rust. Šie rīki koda transformāciju veic ātri, taču tipu pārbaudi tie neveic vispār; to atstāj tsc. Tāpēc lielos projektos tieši tsc kļuva par lēnāko soli būvēšanā un redaktora atbildē. TypeScript 7.0 šo posmu pārceļ uz to pašu ātruma līmeni, kādā jau darbojas pārējie rīki.

Priekšlaidiena būvējumus testēja Bloomberg, Canva, Figma, Google, Linear, Miro, Notion, Slack un Vercel. Vairākas komandas ziņoja par līdzīgu ātruma pieaugumu savos projektos.

Uzstādīšana un darbs blakus vecajai versijai

Kandidātu var uzstādīt ar komandu npm install -D typescript@rc. Pēc tam tsc jau ir Go bināris — tas pats izpildāmais fails, tikai citā implementācijā.

Migrācijai lielos projektos Microsoft pievieno atsevišķu pakotni @typescript/typescript6. Tā uzstāda izpildāmo failu tsc6 un no jauna eksportē 6.0 versijas API, tāpēc abas versijas var darboties blakus bez nosaukumu konflikta. Tas ļauj vecajam kompilatoram un jaunajam strādāt vienā repozitorijā, kamēr komanda pārbauda, vai kaut kas nesalūst.

Nosaukums tsgo, ar kuru vietējais kompilators bija pazīstams 2025. gada priekšlaidienā caur pakotni @typescript/native-preview, tagad attiecas tikai uz nakts būvējumu kanālu. Parastajā typescript pakotnē vietējais būvējums kļūst par standarta tsc.

Redaktors un failu novērošana

Ieguvums neaprobežojas ar komandrindas kompilāciju. Valodas serveris, kas apkalpo redaktoru, tagad, pēc Microsoft datiem, atmet vairāk nekā 20 reizes mazāk kļūdainu komandu nekā 6.0 versijā. Priekšlaidienā trūkstošās funkcijas — semantiskā izcelšana un importu kārtošana — kandidātā ir iekļautas.

Failu novērotājs, ko izmanto --watch režīms, pārnests no Parcel C++ implementācijas uz Go. Microsoft raksta, ka tas dod jūtamu resursu ietaupījumu visās platformās, kad kompilators seko izmaiņām failos.

Kas vēl nav gatavs

Programmatiskais API kandidātā vēl nav stabils — to plānots nostiprināt 7.1 versijā. Ja rīks izmanto TypeScript kompilatoru kā bibliotēku, nevis palaiž to no komandrindas, tam jāgaida nākamā versija vai jāizmanto 6.0 saderības pakotne.

Mainās arī JavaScript atbalsts. InfoWorld norāda, ka Closure stila sintakse vairs netiek atbalstīta, tāpēc projekti, kas balstās uz veco Google Closure anotāciju formātu, ar 7.0 nesaderēs bez izmaiņām.

Kam ir liels TypeScript projekts, ko būvēt CI konveijerā katrā commit, desmitkārtīgs kompilācijas ātrums nozīmē konkrētu laika ietaupījumu katrā palaišanā. Kandidātu var uzstādīt jau tagad; vecais kompilators paliek pieejams caur tsc6, kamēr komanda pārliecinās, ka viss strādā.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie