Microsoft kündigte Project Corsa am 11. März 2025 durch Anders Hejlsberg an, den Schöpfer von TypeScript. Am 8. Juli 2026 wurde das Projekt als TypeScript 7.0 allgemein verfügbar. Der neue Compiler ist in Go geschrieben und wird vorab als natives Binärprogramm kompiliert. Der bisherige Compiler bestand selbst aus TypeScript und lief auf Node. Syntax und Typsystem bleiben vertraut, einschließlich der Besonderheiten struktureller Typisierung.

terminal
npm install -D @typescript/native-preview
npx tsgo --project ./src/tsconfig.json

Die größten Geschwindigkeitsgewinne treten bei kalten, vollständigen Prüfungen auf. Microsoft prüfte die rund 1,5 Millionen Zeilen des VS-Code-Quelltexts mit dem alten Compiler in etwa 77 Sekunden. Die native Version benötigte ungefähr 7,5 Sekunden. Playwright und TypeORM zeigten ähnliche Ergebnisse. Slack verkürzte einen Typprüfschritt von rund siebeneinhalb Minuten auf etwas mehr als eine Minute. Der Artikel berichtet außerdem von einer Monorepo-Prüfung, die zuvor etwa eine Minute dauerte und nun abgeschlossen war, bevor der Autor wieder auf den Bildschirm sah.

Das Vorschaupaket installiert ein Programm namens tsgo, das Befehle ähnlich wie tsc verarbeitet. Später soll tsgo in tsc umbenannt und in das reguläre Paket typescript integriert werden. Der große Vorsprung gilt vor allem für umfangreiche, kalte Prüfungen und CI-Läufe. Inkrementelle Prüfungen im Editor sind bereits auf kleine Änderungen ausgelegt und werden deshalb weniger stark schneller. Der Effekt entsteht durch den nativen Start, parallele Typprüfung über mehrere CPU-Kerne und eine kompaktere Speicherverwaltung.

TypeScript 7.0 enthält noch keine stabile programmatische Compiler-API. Betroffen sind unter anderem typbewusste ESLint-Regeln, ts-morph, ts-jest, ts-patch, eigene AST-Transformer sowie die Typprüfung für Vue-, Svelte-, Astro- und Angular-Templates. Microsoft erwartet die neue API in TypeScript 7.1, einige Monate nach Version 7.0. Werkzeuge, die den Compiler als Bibliothek aufrufen, können bei einem direkten Upgrade ausfallen.

Für die Migration empfiehlt sich eine parallele Installation. TypeScript 6.x bleibt für bibliotheksabhängige Werkzeuge zuständig, während tsgo Builds, CI-Prüfungen und Editor-Integrationen übernimmt. Der native Compiler ist außerdem strenger bei älteren JSDoc-Mustern. Werte können dort nicht mehr auf dieselbe Weise als Typen dienen, @enum wird nicht erkannt und einige Konstrukte aus der Closure-Welt führen nun zu Fehlern.

Die Wahl von Go hängt mit dem Ziel eines möglichst getreuen Ports zusammen. Das Team übertrug die vorhandenen Algorithmen und das Verhalten des Compilers, einschließlich vieler Details, auf die sich Projekte verlassen. Gos Garbage Collector und die Kontrolle über die Speicheranordnung passen zu den zahlreichen zyklischen Datenstrukturen des Compilers. Rust könnte hohe Leistung liefern, würde einen direkten Port durch sein Besitzmodell aber erschweren. Bei C# spielten die native, plattformübergreifende Bereitstellung und der objektorientierte Stil eine ungünstigere Rolle. Go erzeugt schwereres WebAssembly als Rust. Das kann für browserbasierte Editoren und Playgrounds wichtig werden. tsgo eignet sich für schnelle Builds und Prüfungen, während der ältere Compiler bis zur neuen API und zur Anpassung des Ökosystems erhalten bleibt.