Programování

TypeScript 7 vyšel s překladačem v Go, sestavení zrychlilo osm až dvanáctkrát

Microsoft vydal 8. července 2026 verzi TypeScript 7.0. Nepřidává žádnou vlastnost jazyka – mění se to, čím se překládá: dosavadní překladač psaný v JavaScriptu nahradil program v jazyce Go. Sestavení zdrojových kódů Visual Studio Code kleslo ze 125,7 na 10,6 sekundy. Cenou za to je chybějící programové rozhraní, bez kterého se neobejdou nástroje kolem Vue, Svelte nebo Angularu.

28. července 2026 · 6 zhlédnutí

Kreslený sysel, maskot programovacího jazyka Go, drží tužku a francouzský klíč
Gopher, maskot jazyka Go. Právě do Go Microsoft překladač TypeScriptu přenesl. Foto: Renee French, Wikimedia Commons (CC BY 3.0)

Microsoft vydal 8. července 2026 verzi TypeScript 7.0. Nepřináší žádnou novou vlastnost jazyka. Mění se to, čím se překládá: dosavadní překladač napsaný v JavaScriptu nahradil program napsaný v jazyce Go, který běží jako nativní kód a umí zapřáhnout víc jader naráz.

Výsledek stojí za pozornost. Úplné sestavení zdrojových kódů editoru Visual Studio Code trvalo na šestce 125,7 sekundy, na sedmičce 10,6 sekundy. To je bezmála dvanáctinásobné zrychlení téže práce nad týmž kódem.

Přenesení, ne přepsání

TypeScript je nadstavba nad JavaScriptem, která do něj doplňuje typy. Typ je slib, jakou hodnotu smí proměnná nést; překladač ten slib zkontroluje a typy pak z kódu zase odstraní, protože prohlížeč o nich nic neví. Právě ta kontrola je na velkých projektech drahá – a právě ona zrychlila.

Podstatné je, jak se to udělalo. Nešlo o nový návrh překladače, ale o přenesení stávajícího kódu do jiného jazyka se zachováním jeho struktury i postupů. Microsoft to shrnuje tak, že si nová základna drží původní logiku a členění, aby zůstala slučitelná se starou. Prakticky to znamená, že sedmička kontroluje typy stejně jako šestka; kdyby je kontrolovala jinak, byla by to chyba, ne vlastnost.

Vnitřní název projektu byl Corsa, původní základna se v repozitáři označuje jako Strada. Zdrojový kód portu vznikal veřejně v repozitáři microsoft/typescript-go pod licencí Apache 2.0.

Naměřená čísla

Microsoft zveřejnil srovnání na třech otevřených projektech. Uvádí čas úplného sestavení a spotřebu paměti při něm:

ProjektTypeScript 6TypeScript 7Zrychlení
Visual Studio Code125,7 s10,6 s11,9×
Sentry139,8 s15,7 s8,9×
Bluesky24,3 s2,8 s8,7×

Spotřeba paměti klesla mírněji, o šest až šestadvacet procent: u Visual Studio Code z 5,2 na 4,2 gigabajtu, u Bluesky z 1,8 na 1,3 gigabajtu. Zrychlila také práce v editoru – dobu, než se ve zdrojových kódech Visual Studio Code objeví hlášení o chybách, uvádí Microsoft nově pod 1,3 sekundy proti dřívějším 17,5 sekundy.

Zrychlení má dva zdroje. Prvním je nativní kód, který nemusí procházet běhovým prostředím JavaScriptu. Druhým je souběžnost: sedmička umí rozdělit kontrolu typů mezi několik pracovních vláken se sdílenou pamětí. Zapíná se volbou --checkers, výchozí počet je čtyři; volba --builders obdobně paralelizuje projekty propojené odkazy. Obě jsou zatím označené jako pokusné a existuje i --singleThreaded pro případ, že by souběžnost překážela při hledání chyb. Režim sledování změn --watch stojí na sledovači souborů z projektu Parcel, přeneseném rovněž do Go.

Firmy hlásí kratší čekání

K oznámení Microsoft připojil zkušenosti několika firem, které sedmičku zkoušely před vydáním. Ve Slacku podle nich klesl čas kontroly typů v průběžné integraci ze 7,5 minuty na 1,25 minuty a doba strávená ve frontě na sloučení změn se zkrátila o čtyřicet procent. V Canvě se čekání na vypsání chyb zkrátilo z 58 na 4,8 sekundy. Vlastní tým Microsoftu pro zpravodajské služby uvádí úsporu 400 hodin měsíčně stráveného čekáním na sestavení. Jsou to údaje od zúčastněných stran, ne nezávislé měření – řádově ale odpovídají číslům z tabulky výše.

Chybí rozhraní, na kterém stojí celá jedna vrstva nástrojů

Tady přichází druhá polovina zprávy. TypeScript 7.0 nemá veřejné programové rozhraní. Dosud si mohl cizí program překladač zavolat jako knihovnu, předat mu soubor a ptát se ho na typy. Na tom stojí nástroje, které kontrolují typy v souborech, jež nejsou obyčejný TypeScript – tedy v šablonách.

Postižené jsou Vue, Svelte, Astro, MDX a šablony Angularu. Nástroje jako Volar, které typovou kontrolu v šablonách zajišťují, se na sedmičku zatím napojit nedokážou. Kdo takový projekt vyvíjí, zůstává na TypeScriptu 6.0, a to i kdyby ho zrychlení lákalo sebevíc.

Microsoft slibuje nové rozhraní ve verzi 7.1. Datum k němu neuvádí. Repozitář portu u položky „veřejné rozhraní“ stále vede stav, že hotové není.

Verze 6.0, která vyšla 23. března 2026, tak dostává jasnou úlohu: je to poslední vydání postavené na dosavadní javascriptové základně a zároveň most k sedmičce. Obě verze jde nainstalovat vedle sebe.

Co ze sedmičky vypadlo

Přenesení do Go posloužilo i k úklidu. Tvrdou chybou nově končí překlad do ES5, tedy do starší podoby JavaScriptu, dále modulové systémy AMD, UMD a SystemJS, původní způsob dohledávání modulů a volba baseUrl, kterou nahrazuje výslovné vypsání cest.

Změnily se také výchozí hodnoty nastavení. Sedmička je má takto:

{
  "compilerOptions": {
    "strict": true,
    "module": "esnext",
    "rootDir": "./",
    "types": []
  }
}

Nejzrádnější je poslední řádek. Dřív si překladač typové definice ze závislostí dohledával sám; nově je nutné je vypsat, například "types": ["node", "jest"]. Kdo to neudělá, dostane hlášení o neznámých globálních jménech. Přibylo i seřazení typů, které je nově stálé a nedá se vypnout.

Zúžila se podpora JavaScriptu psaného s komentáři JSDoc. Podle soupisu úmyslných rozdílů v repozitáři portu už neprojdou funkce používané místo tříd, značky @enum@class ve stylu knihovny Closure ani některé starší zápisy. Sjednotila se naopak práce se znaky mimo základní rovinu Unicode: řetězcová šablona nad textem „😀abc“ se nově dělí na „😀“ a „abc“, ne uprostřed dvojice kódových jednotek.

Kdy má smysl přejít

Hodnocení: přechod dává smysl hned tam, kde je projekt psaný v čistém TypeScriptu a kde kontrola typů zdržuje. Čísla jsou dost velká na to, aby se vyplatilo projít změněná nastavení a odstraněné volby.

Kdo staví na Vue, Svelte, Astru nebo šablonách Angularu, nemá zatím na výběr. A protože Microsoft k rozhraní žádný termín neuvedl, není jasné, jak dlouho ten stav potrvá – což je u vydání označeného jako stabilní nezvyklé. Ohlášené rozhraní není vydané rozhraní.

Zdroje: oznámení TypeScriptu 7.0oznámení verze 6.0 na vývojářském blogu Microsoftu, repozitář portu včetně soupisu úmyslných rozdílů proti šestce a nezávislý rozbor Dennise Morella.

Programování

Diskuse

Zatím tu nikdo nediskutuje.

Diskutovat mohou přihlášení čtenáři – přihlaste se nebo si založte účet.

← zpět na výpis