TypeScript 7 ist der TypeScript-Compiler, neu geschrieben in Go und als natives Programm ausgeliefert. Die Sprache ist dieselbe, der Befehl heißt weiterhin tsc, und das npm-Paket heißt weiterhin typescript. Was sich ändert: die Geschwindigkeit (vollständige Builds etwa zehnmal schneller), eine Reihe neuer Standardwerte und der Wegfall der Optionen, die TypeScript 6 als veraltet markiert hat. TypeScript 7.0 wurde am 8. Juli 2026 veröffentlicht, und die Version auf npm ist 7.0.2.
npm install --save-dev typescript@latest
npx tsc --version
Version 7.0.2
Einer der wenigen Unterschiede, die du auf Typebene sehen kannst, ist die Art, wie Template Literal Types Strings zerlegen. JavaScript speichert Strings als UTF-16-Codeeinheiten, und ein Emoji wie 😀 belegt zwei davon:
TypeScript 6 hat Template Literal Types nach Codeeinheiten zerlegt, wie text[0]. TypeScript 7 zerlegt sie nach Codepoints, wie [...text], deshalb bleibt das Emoji ganz:
type HeadTail<S> = S extends `${infer Head}${infer Tail}` ? [Head, Tail] : never;
type Result = HeadTail<"😀abc">;
// TypeScript 7: ["😀", "abc"]
// TypeScript 6: ["\ud83d", "\ude00abc"]
Warum TypeScript in Go neu geschrieben wurde
Bis Version 6 war der TypeScript-Compiler selbst in TypeScript geschrieben und lief auf Node.js. Bei großen Codebasen bedeutete das langsame Builds, einen langsamen Editorstart und hohen Speicherverbrauch.
Anders Hejlsberg kündigte die native Portierung am 11. März 2025 in einem Beitrag mit dem Titel "A 10x Faster TypeScript" an. Die neue Codebasis bekam den Codenamen Corsa, die JavaScript-Codebasis den Namen Strada. Das Team hat den Code des bestehenden Compilers portiert, statt den Type Checker neu zu entwerfen, also folgt der neue Compiler denselben Regeln und meldet dieselben Fehler. TypeScript 6.0 (März 2026) war die letzte Version der JavaScript-Codebasis und diente als Brücke: Sie markierte alles als veraltet, was TypeScript 7 entfernen würde. TypeScript 7.0 folgte am 8. Juli 2026.
Wie viel schneller TypeScript 7 ist
Vollständige Builds von Open-Source-Projekten, wie mit Version 7.0 veröffentlicht:
| Projekt | TypeScript 6 | TypeScript 7 | Beschleunigung | Speicher |
|---|---|---|---|---|
| VS Code | 125.7 s | 10.6 s | 11.9x | 5.2 GB auf 4.2 GB |
| Sentry | 139.8 s | 15.7 s | 8.9x | 4.9 GB auf 4.6 GB |
| Bluesky | 24.3 s | 2.8 s | 8.7x | 1.8 GB auf 1.3 GB |
| Playwright | 12.8 s | 1.47 s | 8.7x | 1.0 GB auf 0.9 GB |
| tldraw | 11.2 s | 1.46 s | 7.7x | 0.6 GB auf 0.5 GB |
Diese Läufe nutzten den Standard von 4 Workern für die Typprüfung. Mit --checkers 8 auf derselben Maschine dauerte der VS-Code-Build 7.51 s (16.7x) und tldraw 1.06 s (10.6x), bei höherem Speicherverbrauch.
Der Editor gewinnt genauso viel. Der Language Service läuft jetzt als nativer Language Server: In der VS-Code-Codebasis sank die Zeit vom Öffnen des Editors bis zum ersten angezeigten Fehler in einer Datei von etwa 17,5 Sekunden auf unter 1,3 Sekunden. Die Beschleunigung zählt am meisten bei Monorepos, CI-Pipelines und Editoren in großen Codebasen.
Was gleich bleibt
- Der Befehl und das Paket.
npm install --save-dev typescriptundnpx tsc. Bei der Installation wählt npm eine vorgefertigte Binärdatei für deine Plattform aus optionalen Abhängigkeiten wie@typescript/typescript-linux-x64, es gibt also sonst nichts einzurichten. - Die Sprache. Dieselbe Syntax, dasselbe Typsystem, dieselben Fehlercodes.
- Die Ergebnisse. Laut Release Notes sollte praktisch jeder Code, der mit TypeScript 6.0 fehlerfrei kompiliert, mit eingeschaltetem Flag
stableTypeOrderingund ohne EinstellungignoreDeprecations, in TypeScript 7.0 identisch kompilieren.
Neue Standardwerte
TypeScript 6.0 hat diese Standardwerte geändert, und TypeScript 7 behält sie bei. Sie spielen nur für Optionen eine Rolle, die deine tsconfig.json nicht setzt:
| Option | Neuer Standardwert | Folge, wenn du dich auf den alten verlassen hast |
|---|---|---|
strict | true | Projekte, die strict nie gesetzt haben, bekommen jetzt strikte Null-Prüfungen, noImplicitAny und den Rest |
target | es2025, die neueste Version vor esnext | Die Ausgabe behält moderne Syntax, solange du kein älteres Ziel setzt |
module | esnext | Ausgabe als ES-Modul, solange du nicht nodenext oder commonjs setzt |
types | [] | Installierte @types-Pakete werden nicht mehr automatisch geladen: Ergänze "types": ["node"] (["*"] stellt das alte Verhalten wieder her) |
rootDir | ./, der Ordner mit der tsconfig.json | Mit gesetztem outDir und Quellen in src kommt error TS5011, bis du "rootDir": "./src" setzt |
noUncheckedSideEffectImports | true | Ein Import nur wegen seiner Seiteneffekte wie import "./styles.css" braucht eine Moduldeklaration (declare module "*.css";), die Typpakete von Frameworks meist mitbringen |
stableTypeOrdering | Immer aktiv, lässt sich nicht ausschalten | Typen werden bei jedem Lauf gleich sortiert, also hängen Fehlermeldungen und die .d.ts-Ausgabe nicht von der Prüfreihenfolge ab |
Entfernte Optionen und Syntax
In TypeScript 6 als veraltet markierte Optionen sind in TypeScript 7 Fehler:
target: es5unddownlevelIteration, das es nur für ES5-Ausgabe gab.moduleResolution: node(auchnode10genannt) undclassic. Nimmnodenextoderbundler.module: amd,umd,systemundnone.baseUrl(schreibepathsrelativ zur tsconfig-Datei) undoutFile(nimm einen Bundler).esModuleInterop: false,allowSyntheticDefaultImports: falseundalwaysStrict: false; alle drei sind immer aktiv.
Der Compiler sagt genau, was zu entfernen ist:
error TS5102: Option 'baseUrl' has been removed. Please remove it from your configuration.
error TS5108: Option 'moduleResolution=node10' has been removed. Please remove it from your configuration.
Zwei alte Syntaxformen sind ebenfalls Fehler: module Foo { } für einen Namespace (schreibe namespace Foo { }; declare module "foo" für ein Paket ist nicht betroffen) und Import Assertions (aus assert { type: "json" } wird with { type: "json" }).
index.ts(2,8): error TS1540: A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.
Wenn du in Zeile 2 module durch namespace ersetzt, ist der Fehler behoben, und das Programm gibt 4 aus.
Auf der Kommandozeile bricht tsc file.ts in einem Ordner mit einer tsconfig.json jetzt mit error TS5112 ab, statt die Konfiguration stillschweigend zu ignorieren. Führe tsc allein aus oder übergib --ignoreConfig. In JavaScript-Dateien, die mit JSDoc geprüft werden, liest TypeScript 7 Typen eher so, wie TypeScript es tut: @enum wird nicht mehr erkannt, und ein Wert, der als Typ verwendet wird, braucht typeof. Die tsconfig-Seite zeigt den Ersatz für jede entfernte Option.
Tools, die noch TypeScript 6 brauchen
TypeScript 7.0 liefert keine stabile JavaScript-API. require("typescript") gibt nur Versionsinformationen zurück (version und versionMajorMinor), und die Compiler-Funktionen, die andere Tools aufrufen (createProgram, der Language Service), fehlen; die Einstiegspunkte typescript/unstable/* des Pakets sind experimentell und kein Ersatz. Laut Release Notes erwartet das Team, dass TypeScript 7.1 eine neue, andere API mitbringt. Bis dahin nutzt alles, was den Compiler als Bibliothek importiert, weiter TypeScript 6:
- typescript-eslint (typbewusste Lint-Regeln)
- Sprachwerkzeuge für Vue-, Svelte- und Astro-Dateien, die Template-Typprüfung von Angular und MDX
- ts-node, das mit installiertem TypeScript 7 beim Start abstürzt
Für diese Fälle liefert TypeScript ein Kompatibilitätspaket, @typescript/typescript6, das TypeScript 6 mit seiner vollständigen API und einem tsc6-Befehl installiert. Mit npm-Aliasen kann ein Projekt beides haben: TypeScript 7 übernimmt die Builds, und Tools, die typescript importieren, bekommen Version 6.
{
"devDependencies": {
"@typescript/native": "npm:typescript@^7.0.2",
"typescript": "npm:@typescript/typescript6@^6.0.2"
}
}
Nach npm install:
$ npx tsc --version
Version 7.0.2
$ npx tsc6 --version
Version 6.0.3
Wenn du keines dieser Tools nutzt, installiere einfach typescript und überspringe diesen Abschnitt.
Neue Kommandozeilenoptionen
Der native Compiler parst, prüft und schreibt parallel. Drei neue Flags steuern das, und die Release Notes nennen --checkers und --builders experimentell:
| Flag | Was es bewirkt |
|---|---|
--checkers N | Anzahl der Worker für die Typprüfung pro Projekt (Standard 4). Mehr kann auf Maschinen mit vielen Kernen helfen und kostet Speicher; weniger passt zu kleinen CI-Runnern. |
--builders N | Anzahl der Projekte, die bei einem --build mit Projektreferenzen gleichzeitig gebaut werden. Es multipliziert sich mit --checkers: 4 Builder mit je 4 Checkern können 16 Checker gleichzeitig laufen lassen. |
--singleThreaded | Schaltet jede Parallelität ab, zum Debuggen oder bei knappem Speicher. |
Auch --watch wurde neu geschrieben, auf Basis einer Go-Portierung des Datei-Watchers aus dem Bundler Parcel.
Editor-Unterstützung
Für VS Code veröffentlicht das TypeScript-Team eine eigene Erweiterung für TypeScript 7. Nach der Installation wird sie zum Standard, und der Befehl "Disable TypeScript 7 Language Server" in der Befehlspalette schaltet zurück auf TypeScript 6. Das aktuelle Visual Studio aktiviert TypeScript 7 automatisch je nach Workspace, und andere Editoren (Neovim, Zed, Sublime Text, Emacs) verbinden sich über das Language Server Protocol. Projekte mit Vue-, Svelte-, Astro- oder MDX-Dateien oder mit Angular-Templates behalten die Editor-Unterstützung auf Basis von TypeScript 6, bis TypeScript 7 eine API anbietet, die diese Tools nutzen können. Ein Angular-Projekt kann trotzdem den tsc von TypeScript 7 für schnelle Prüfungen des ganzen Projekts nutzen.
Upgrade auf TypeScript 7
- Zuerst auf TypeScript 6 aktualisieren, falls du auf 5.x bist:
npm install --save-dev typescript@6. Behebe jeden gemeldeten Fehler zu veralteten Optionen, statt ihn mit"ignoreDeprecations": "6.0"stummzuschalten. "stableTypeOrdering": trueeinschalten unter TypeScript 6 und alles beheben, was sich dadurch ändert. Laut Team kompiliert genau diese Konfiguration in 7 identisch.- Die Optionen setzen, deren Standardwerte sich geändert haben, falls du von den alten Werten abhängig warst, zum Beispiel
"types": ["node"]und"rootDir": "./src". - TypeScript 7 installieren:
npm install --save-dev typescript@latest. Danach kannst dustableTypeOrderingentfernen, wenn du willst; in 7 ist es immer aktiv. - Deine Tools prüfen. Wenn du typescript-eslint, ts-node oder ein Framework mit Template-Typprüfung nutzt, richte den oben gezeigten Alias für TypeScript 6 ein.
- Die Version bestätigen mit
npx tsc --version, und sicherstellen, dass die CI aus der aktualisierten Lockfile installiert.
tsgo und die Vorschau-Builds
Vor der Veröffentlichung erschien der native Compiler als @typescript/native-preview mit dem Befehl tsgo, damit man ihn neben dem JavaScript-tsc ausprobieren konnte. Artikel aus 2025 und Anfang 2026 sprechen von tsgo. Mit 7.0 ist dieser Name aus dem Alltag verschwunden: Der native Compiler ist tsc, und seine Nightly-Builds erscheinen als typescript@next (heute Entwicklungsversionen von 7.1).
Häufig gestellte Fragen
Was ist TypeScript 7?
TypeScript 7 ist die erste Version des TypeScript-Compilers, die in Go neu geschrieben und zu einem nativen Programm kompiliert wurde, statt als JavaScript auf Node.js zu laufen. Er prüft dieselbe Sprache mit demselben tsc-Befehl, und laut Release Notes sind vollständige Builds typischerweise 8 bis 12 Mal schneller als mit TypeScript 6. Veröffentlicht wurde er am 8. Juli 2026.
Ist TypeScript 7 in Go geschrieben?
Ja. Compiler und Language Service wurden von TypeScript nach Go portiert (das Projekt hatte den Codenamen Corsa, die JavaScript-Codebasis hieß Strada). Du installierst ihn weiterhin über npm als Paket typescript; npm wählt eine vorgefertigte native Binärdatei für dein Betriebssystem und deine CPU.
Muss ich meinen Code für TypeScript 7 ändern?
Meist nicht den Code, manchmal die Konfiguration. TypeScript 7 entfernt Optionen, die 6.0 als veraltet markiert hat (target: es5, moduleResolution: node, baseUrl, outFile und andere), und ändert Standardwerte wie strict: true und types: []. Code, der mit TypeScript 6.0 fehlerfrei kompiliert, mit eingeschaltetem stableTypeOrdering und ohne ignoreDeprecations, sollte identisch kompilieren.
Was ist tsgo?
tsgo war der Befehlsname der Vorschau-Builds des nativen Compilers, die vor Version 7.0 als npm-Paket @typescript/native-preview erschienen. In TypeScript 7 ist der native Compiler einfach tsc im Paket typescript, und Nightly-Builds kommen von typescript@next.
Funktioniert typescript-eslint mit TypeScript 7?
Nicht direkt. TypeScript 7.0 liefert keine stabile JavaScript-API, und Tools wie typescript-eslint, ts-node sowie die Template-Checker für Vue, Svelte und Angular rufen diese API auf. Behalte für sie TypeScript 6 über das Paket @typescript/typescript6 (ein npm-Alias) und nutze für Builds den tsc von TypeScript 7. Das TypeScript-Team erwartet, dass TypeScript 7.1 eine neue, andere API mitbringt.