programmatūra · 5 min · 25.10.2026

TypeScript 7.1 beta atver Go kompilatora API: Vue, Svelte un Angular var pāriet uz ātro dzinēju

Microsoft 20. oktobrī publicēja TypeScript 7.1 beta versiju. TypeScript 7.0, kas iznāca jūlijā, pārrakstīja kompilatoru Go valodā un paātrināja kompilēšanu līdz desmit reizēm. VS Code projektā kompilēšanas laiks nokritās no 77,8 uz 7,5 sekundēm. Taču Go kompilatoram nebija programmatiskā API, uz kuru balstās Vue, Svelte, Angular, Astro, ts-morph un typescript-eslint. Šie rīki palika pie TypeScript 6.0, jo viņu integrācija balstījās uz veco JavaScript API, kura jaunajā Go dzinējā nepastāvēja. Dažās komandās izstrādātāji turēja divus paralēlus TypeScript uzstādījumus: 7.0 ātrai kompilēšanai un 6.0 redaktora spraudņu darbībai.

Versija 7.1 pievieno stabilu programmatisko API un satura kartētāju (content mapper) spraudņu punktu. Tieši šis laidiens ļauj pārējai ekosistēmai sākt pāreju uz ātro Go kompilatoru. Līdztekus API laidiens pievieno import atribūtus ambient moduļos, avota fāzes importus WebAssembly moduļiem un es2026 kā stabilu --target opciju. Stabilais laidiens plānots 24. novembrī.

Satura kartētāji atslēdz Vue, Svelte un Astro

TypeScript 7.0 Go kompilators spēja apstrādāt tikai .ts un .tsx failus. Vue izmanto .vue failus ar kombinētu veidni, skriptu un stilu vienā failā. Svelte izmanto .svelte, Astro izmanto .astro. Šo formātu apstrāde iepriekš balstījās uz TypeScript JavaScript API, kura Go versijā nepastāvēja. Rezultātā desmit reižu ātrāks kompilators bija pieejams tikai tiem projektiem, kas lietoja tīrus TypeScript failus.

Versija 7.1 ievieš satura kartētāju spraudņu punktu (content mapper plugin point). Kartētājs pārveido, piemēram, .vue faila saturu par TypeScript kodu, ko kompilators var analizēt. Avota pozīciju kartēšana nodrošina, ka kļūdu ziņojumi norāda uz pareizo rindu oriģinālajā failā, nevis uz ģenerēto starpproduktu. API ir sadalīts fokusētos ieejas punktos, nevis vienā monolītiskā modulī kā iepriekš. Līdztekus kartētāju punktam pieejams arī Emit API programmatiskām koda transformācijām.

Projekts Volar jau prototipējis kartētājus sešiem formātiem: Vue, Svelte, Astro, MDX, CSS Modules un Ember. Volar modelis ir pirmās klases pilsonis jaunajā arhitektūrā. Angular komanda strādā pie sava šablonu pārbaudītāja pielāgošanas. Katrs rīks publicēs savu atjauninājumu atsevišķi, tāpēc pāreja nenotiks uzreiz.

Import atribūti un avota fāzes importi

Import atribūti (import attributes) ļauj importa deklarācijā norādīt, kā izpildvidei vai bundlerim apstrādāt importēto saturu. Piemērs: import data from "./config.json" with { type: "json" }; norāda, ka fails ir JSON, nevis izpildāms JavaScript modulis. Drošības ziņā tas nozīmē, ka izpildvide var atteikties izpildīt failu, kura deklarētais tips neatbilst faktiskajam saturam.

Līdz versijai 7.1 ambient moduļu deklarācijas (piemēram, declare module "*.json") neņēma vērā šos atribūtus. Tagad var rakstīt tipu deklarācijas, kas atšķir JSON importu no parastā moduļa importa. Tas novērš situāciju, kad TypeScript klusējot pieņem nepareizu tipu.

Avota fāzes importi (import source) ir TC39 priekšlikums trešajā posmā. Šāds imports atgriež inertu moduļa avota objektu bez moduļa inicializēšanas. WebAssembly gadījumā rezultāts ir WebAssembly.Module, ko var nosūtīt citam darbiniekam ar postMessage bez atkārtotas ielādes no tīkla.

es2026 mērķis un jaunā standarta bibliotēka

TypeScript 7.1 pievieno es2026 kā stabilu --target un --lib opciju. Jaunajā standarta bibliotēkā iekļautas funkcijas, kuru specifikācija ir apstiprināta vai tuvu apstiprināšanai: Math.sumPrecise() precīzai peldošā komata skaitļu summēšanai, Iterator.concat() vairāku iteratoru savienošanai vienā secībā un Array.fromAsync() asinhrono iteratoru pārveidošanai masīvos. Funkcija Math.sumPrecise() summē masīvu precīzāk nekā vienkāršs cikls, jo izvairās no starprezultātu noapaļošanas kļūdām, kas uzkrājas ar katru saskaitīšanas soli.

Iepriekš izstrādātāji, kuri vēlējās šīs funkcijas, pievienoja manuālas lib.d.ts pārdefinēšanas vai izmantoja esnext mērķi. Problēma ar esnext bija tā, ka tā saturs var mainīties starp TypeScript versijām bez brīdinājuma. Stabilais es2026 mērķis piesaista konkrētu ECMAScript specifikāciju un nemainīsies nākamajos TypeScript laidienos.

Ko sagaidīt līdz stabilajam laidienam

Beta laidienā ir divas uzvedības izmaiņas, kas var pievienot jaunas kļūdas projektam, kurš pašlaik kompilējas bez brīdinājumiem. Viena analīze iesaka pirms pārejas palaist npm install -D typescript@beta esošajā projektā un pārbaudīt, vai tsc neuzrāda jaunas kļūdas. Ja uzrāda, labāk tās labot tagad, nevis gaidīt stabilo laidienu.

Kandidāta laidiens gaidāms aptuveni 10. novembrī. Stabilais laidiens plānots 24. novembrī. Pēc TypeScript 7.1 iznākšanas daudzas komandas joprojām paliks pie TypeScript 6.0, līdz Volar, typescript-eslint, ts-jest un pārējie atkarīgie rīki publicēs savus saderības atjauninājumus. Vue un Svelte projektiem reāla pāreja uz 7.x sāksies tad, kad Volar publicēs savu kartētāju stabilo versiju.

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