Was ist neu in TypeScript 6.0
TypeScript 6.0 ist kein typisches Feature-Release. Wer beim Upgrade neue Syntax oder dramatische Änderungen am Typsystem erwartet, wird überrascht sein. Dieses Release konzentriert sich primär darauf, Standardeinstellungen zu modernisieren, Legacy-Altlasten zu entfernen und das Ökosystem auf TypeScript 7.0 vorzubereiten — die kommende native Portierung des Compilers und der Tooling-Infrastruktur in Go. Zu verstehen, was sich geändert hat und warum, erspart Ihnen nach dem Upgrade Stunden des Debuggings.
Wichtigste Erkenntnisse
- TypeScript 6.0 ist ein Übergangs-Release — die letzte Version, die auf dem JavaScript-basierten Compiler aufbaut — und dient dazu, Standardeinstellungen und Deprecations aufzuräumen, bevor die native TypeScript-7.0-Linie erscheint.
- Mehrere Compiler-Standardeinstellungen haben sich geändert, darunter
strict: true,module: "esnext", ein flexiblestarget, das derzeit zues2025aufgelöst wird,types: []undnoUncheckedSideEffectImports: true. Diese können Build-Fehler verursachen, wenn Ihre tsconfig auf implizites Verhalten angewiesen war. - Neue Plattform-Features umfassen das
es2025-Target, Typen für die Temporal API,RegExp.escape,Map.getOrInsertund konsolidierte DOM-Lib-Einträge. - Mehrere Legacy-Optionen wie
--moduleResolution node(das altenode10-Verhalten),--target es5und ältere Modulformate sind für den Übergang zu TypeScript 7.0 als veraltet markiert. Kümmern Sie sich jetzt darum, um später eine schmerzhafte Migration zu vermeiden.
TypeScript 6.0 ist ein Übergangs-Release, kein Feature-Drop
TypeScript 6.0 ist bewusst als letzte Version positioniert, die auf der JavaScript-Codebasis aufbaut. TypeScript 7.0 wird voraussichtlich der native Go-basierte Nachfolger sein, mit deutlich schnelleren Builds und Editor-Performance. TypeScript 6.0 räumt die Grundlage auf, bevor dieser Übergang stattfindet.
Die praktische Konsequenz: Die meisten Änderungen in TypeScript 6.0 betreffen Konfigurations-Standardeinstellungen und Deprecations, nicht neue Sprachfeatures. Wenn Ihr Projekt Legacy-tsconfig-Optionen angesammelt hat, ist jetzt der richtige Zeitpunkt, sich darum zu kümmern.
Was ist neu in TypeScript 6.0: Plattform-Alignment-Features
Trotz des Übergangsfokus fügt TypeScript 6.0 durchaus sinnvolle Unterstützung für moderne JavaScript-APIs hinzu.
ES2025-Target und neue Built-in-Typen
TypeScript 6.0 fügt es2025 als gültigen --target- und --lib-Wert hinzu. Das umfasst Built-in-Typen für APIs wie RegExp.escape und verschiebt auch einige Deklarationen von esnext nach es2025.
Es fügt außerdem Built-in-Typen für neuere APIs hinzu, die weiterhin über esnext verfügbar gemacht werden:
RegExp.escape— escaped sicher Sonderzeichen in Regex-StringsTemporalAPI — ein moderner Ersatz fürDate, typisiert unteresnextodertemporal.esnextMap.getOrInsertundMap.getOrInsertComputed— sauberere Upsert-Patterns fürMapundWeakMap, verfügbar überesnext
// Vorher: ausführliches Map-Upsert-Pattern
if (!map.has("key")) map.set("key", defaultValue)
const value = map.get("key")
// Nachher: sauber und prägnant
const value = map.getOrInsert("key", defaultValue)
Konsolidierung der DOM-Typen
dom.iterable und dom.asynciterable sind jetzt in die Basis-dom-Lib integriert. Sie müssen sie nicht mehr separat in Ihrer tsconfig.json auflisten. Wenn Sie "lib": ["dom", "dom.iterable"] verwendet haben, können Sie auf einfach "lib": ["dom"] vereinfachen.
Subpath-Imports beginnend mit #/
TypeScript unterstützt jetzt Node.js-Subpath-Imports mit dem #/-Präfix. Das lässt sich sauber auf das imports-Feld in package.json abbilden und bringt das Feature viel näher an die Alias-Patterns heran, die Bundler-Nutzer bereits kennen.
Discover how at OpenReplay.com.
Breaking Changes in TypeScript 6.0: Was Ihr Projekt tatsächlich zum Scheitern bringt
Hier findet der Großteil des Migrationsaufwands für TypeScript 6.0 statt. Mehrere Compiler-Standardeinstellungen haben sich geändert.
| Einstellung | TypeScript-6.0-Standard |
|---|---|
strict | true |
module | esnext |
target | aktuell unterstützte ES-Version (es2025 derzeit) |
types | [] (leer) |
rootDir | tsconfig-Verzeichnis |
noUncheckedSideEffectImports | true |
Die Änderung bei types: [] ist eine der folgenreichsten. Früher hat TypeScript automatisch jedes Package in node_modules/@types eingebunden. Jetzt wird standardmäßig nichts mehr eingebunden. Projekte, die auf Globals aus @types/node, @types/jest oder ähnlichen Packages angewiesen sind, werden Fehler wie diesen sehen:
Cannot find name 'process'. Try adding 'node' to the types field in your tsconfig.
Beheben Sie es explizit:
{
"compilerOptions": {
"types": ["node", "jest"]
}
}
Die rootDir-Änderung ist ebenfalls häufig. Wenn Ihre Output-Dateien plötzlich bei dist/src/index.js statt bei dist/index.js erscheinen, fügen Sie "rootDir": "./src" zu Ihrer tsconfig hinzu.
Eine weitere beachtenswerte Änderung ist noUncheckedSideEffectImports: true. Wenn Ihre Codebasis Side-Effect-Only-Imports mit Tippfehlern oder unsicherer Auflösung enthält, wird TypeScript 6.0 diese eher markieren.
Deprecations in TypeScript 6.0: Was vor TypeScript 7 zu entfernen ist
Diese Optionen sind in 6.0 für den Übergang zu TypeScript 7.0 als veraltet markiert, und einige ältere Verhaltensweisen sind bereits entfernt:
--target es5(das niedrigste unterstützte Target ist jetzt ES2015)--moduleResolution node/--moduleResolution classic→ migrieren Sie zunodenextoderbundler--module amd,umd,systemjs,none--baseUrl→ verschieben Sie das Präfix direkt in Ihrepaths-Einträge--outFile→ verwenden Sie einen Bundler wie esbuild, Vite oder RollupesModuleInterop: falseundallowSyntheticDefaultImports: false- Legacy-
module Foo {}-Namespace-Syntax → verwenden Sienamespace Foo {} - Import-
assert-Syntax → ersetzen Sie durchwith
Sie können Deprecation-Warnungen vorübergehend mit "ignoreDeprecations": "6.0" in Ihrer tsconfig unterdrücken, aber das sollte als kurzfristige Notlösung betrachtet werden.
Upgrade auf TypeScript 6.0
Installieren Sie den aktuellen 6.0 Release Candidate mit:
npm install -D typescript@rc
Führen Sie tsc --noEmit aus und arbeiten Sie die Fehler ab. Die meisten Probleme werden aus dem types-Array, rootDir, Side-Effect-Imports und veralteten Optionen resultieren.
Fazit
TypeScript 6.0 ist ein Aufräum-Release, kein Feature-Showcase. Sein Zweck ist es, Legacy-Standardeinstellungen zurückzuziehen, den Compiler mit modernem JavaScript abzugleichen und den Boden für die native TypeScript-7.0-Linie zu bereiten. Je früher Sie diese Migrationsänderungen angehen — aktualisierte types-Arrays, explizite rootDir-Werte, Side-Effect-Import-Probleme und Ersetzungen veralteter Optionen — desto reibungsloser wird Ihr Weg zu TypeScript 7.0 verlaufen.
Wenn Sie die vollständige technische Aufschlüsselung vom TypeScript-Team möchten, können Sie auch die offizielle TypeScript 6.0 RC-Ankündigung lesen.
FAQs
Wahrscheinlich ja, wenn Ihre tsconfig auf implizite Standardeinstellungen angewiesen war. Die häufigsten Probleme entstehen dadurch, dass das types-Feld jetzt standardmäßig ein leeres Array ist, rootDir jetzt auf das tsconfig-Verzeichnis zeigt und Side-Effect-Imports strenger behandelt werden. Führen Sie nach dem Upgrade tsc --noEmit aus, um alle Fehler sichtbar zu machen, bevor Sie Änderungen vornehmen.
TypeScript 6.0 ist das finale Release, das auf dem ursprünglichen JavaScript-basierten Compiler aufbaut. Es konzentriert sich darauf, Standardeinstellungen aufzuräumen und Legacy-Optionen als veraltet zu markieren. TypeScript 7.0 wird voraussichtlich der native Go-basierte Nachfolger sein, mit deutlich schnelleren Builds und Editor-Tooling. Version 6.0 ist der Vorbereitungsschritt für diesen Übergang.
Ja. Der alte node-Auflösungsmodus in TypeScript 6.0 bezieht sich auf das Legacy-node10-Verhalten und ist veraltet, classic ist ebenfalls entfernt. Verwenden Sie nodenext, wenn Ihr Projekt direkt in Node.js läuft, oder bundler, wenn Sie auf ein Tool wie Vite, Webpack, Bun oder esbuild angewiesen sind, um Ihre Module aufzulösen und zu bündeln.
Ja, aber Sie müssen normalerweise die module-Option explizit setzen, wenn esnext nicht das ist, was Sie möchten. Wenn Ihr Projekt weiterhin CommonJS ausgibt, geben Sie module als commonjs in Ihrer tsconfig an. Erwägen Sie jedoch, wo möglich zu modernen Modul-Einstellungen zu migrieren, da TypeScript 6.0 eindeutig aktuelle ESM-first-Workflows bevorzugt.
Complete picture for complete understanding
Capture every clue your frontend is leaving so you can instantly get to the root cause of any issue with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data.
Check our GitHub repo and join the thousands of developers in our community.