Technologie

TypeScript 7.0 ist 10-mal schneller — Vue, Svelte und Angular müssen warten

Adrian Kessler

Der TypeScript-Compiler in VS Code brauchte früher 125 Sekunden, um eine frische Kopie der eigenen Codebasis des Editors zu prüfen. TypeScript 7.0 erledigt denselben Job in 10,6 Sekunden. Microsoft hat nicht den alten Code optimiert – es hat die gesamte Compiler-Laufzeitumgebung von JavaScript nach Go portiert und damit eine Mehrkern-Parallelität freigeschaltet, die eine JavaScript-Engine nicht bieten kann.

Bei dem Port handelt es sich nicht um eine komplette Neuentwicklung. Die Ingenieure von Microsoft beschrieben die Typprüfungslogik als strukturell identisch mit TypeScript 6.0 – dieselben Regeln, dasselbe Verhalten, übersetzt in eine Sprache, die Arbeit auf CPU-Kerne verteilen kann. Das Team entschied sich für Go, weil die ursprüngliche funktionslastige JavaScript-Codebasis nahezu eins zu eins auf Go-Idiome abbildbar war. Die neue Laufzeitumgebung führt außerdem Flags zur expliziten Parallelitätssteuerung ein: Mit der Option –checkers 8 auf einer modernen Workstation erreicht der VS-Code-Build eine 16,7-fache Verbesserung gegenüber TypeScript 6. Die CI-Typprüfung von Slack sank von 7,5 Minuten auf 1,25. Der Build von Bluesky ging von 24,3 Sekunden auf 2,8 zurück. Dieses Muster gilt codebasisübergreifend: Die Gewinne steigen mit der Projektgröße, denn die Grenze ist jetzt die Hardware, nicht die Laufzeitumgebung.

TypeScript 7.0 wird ohne eine öffentliche programmatische API ausgeliefert – die Schnittstelle, die Build-Tools verwenden, wenn sie den Compiler aus ihrem eigenen Code heraus aufrufen. Jeder Template-Typprüfer der großen Web-Frameworks ist darauf angewiesen. Vues Volar-Tooling, Sveltes Language Service, MDX, Angulars Template-Checker: Keines davon funktioniert mit TypeScript 7.0. Auch Tools wie ts-morph und ts-jest, die Compiler-Interna von TypeScript für Refactoring und Tests bereitstellen, sind defekt. Microsoft hat bestätigt, dass die Ersatz-API für TypeScript 7.1 geplant ist, voraussichtlich im Oktober. Projekte, die eines dieser Frameworks oder Tools verwenden, sollten noch nicht upgraden.

Ältere Projektkonfigurationen stehen vor einer weiteren Reihe von Hürden. TypeScript 7.0 macht Optionen, die Version 6.0 als veraltet markiert hatte, zu harten Build-Fehlern: ES5-Kompilierungsziele, AMD- und SystemJS-Modulformate, die klassische Modulauflösung und das Schlüsselwort assert bei Import-Anweisungen führen alle dazu, dass der Build sofort fehlschlägt. Die neue Standard-tsconfig.json lädt @types-Pakete nicht mehr automatisch, was bedeutet, dass Projekte, die auf die automatische Typfindung ohne explizite Deklaration ihrer Typabhängigkeiten angewiesen waren, beim Import stillschweigend scheitern. Microsoft bietet einen typescript@npm:@typescript/typescript6-Kompatibilitäts-Shim für Projekte an, die TS6-Tooling neben dem neuen Compiler weiterbetreiben müssen.

Projekte, die diese Hürden nehmen – reine Node.js- oder Deno-Anwendungen, Browser-Apps, die nicht auf einem Framework-Template-System basieren, und Bibliotheken ohne Abhängigkeiten von einer programmatischen API – können mit einer einzigen Änderung in der package.json upgraden. Die Editor-Unterstützung folgt derselben Trennung: VS Code hat eine dedizierte TypeScript-7-Erweiterung, die jetzt verfügbar ist, und die integrierte Unterstützung absolviert gerade die Migration zum Language Server Protocol, das den älteren TSServer-Entwurf ersetzt. WebStorm und andere Editoren, die ebenfalls von TSServer abhingen, arbeiten noch an diesem Übergang.

TypeScript 7.1, das derzeit für Oktober 2026 anvisiert ist, wird die neue Compiler-API liefern, die Vue, Svelte, Angular und MDX-Tooling benötigen, bevor sie migrieren können. Wenn sie kommt, werden die Leistungsgewinne aus dem 15-monatigen Go-Port das gesamte Ökosystem erreichen. Bis dahin empfehlen die Projektseiten von Volar, SvelteKit und Angular, bei TypeScript 6.0.x zu bleiben.

Schlagwörter: , , ,

Diskussion

Es gibt 0 Kommentare.