TypeScript 6 is Released
Why This Matters
TypeScript 6.0, released March 23, 2026, is the final release built on the JavaScript codebase. After this, the compiler moves to Go with TypeScript 7.0 (codenamed "Corsa"). This is a deliberate bridge release -- it introduces aggressive breaking changes and deprecations now so the ecosystem can prepare before 7.0 removes them entirely.
The Big Picture
TypeScript 6.0 is a cleanup release. The native Go-based TypeScript 7.0 is "extremely close to completion" and expected within months. The 7.0 benchmarks are dramatic:
| Project | TS 5.x/6.x | Native 7.0 | Speedup |
| VS Code (1.5M lines) | 77.8s | 7.5s | 10.4x |
| Playwright (356K lines) | 11.1s | 1.1s | 10.1x |
| TypeORM (270K lines) | 17.5s | 1.3s | 13.5x |
Editor loading for VS Code drops from 9.6 seconds to ~1.2 seconds. Memory usage roughly halves.
Key Breaking Changes
New defaults that will surprise you:
strict: true(wasfalse)module: esnext(wascommonjs)target: es2025(floating to current-year ES version)types: [](was auto-enumerated fromnode_modules/@types-- this alone can improve build times 20-50%)
Removed or deprecated:
target: es5-- deprecated; ES2015 is now the minimum--moduleResolution node-- must migrate tonodenextorbundler--moduleResolution classic-- removed entirely--module amd/umd/systemjs/none-- removed--outFile-- removed; use external bundlersesModuleInterop: false-- can no longer be disabled--baseUrlas module resolution root -- deprecated
Escape hatch:
"ignoreDeprecations": "6.0" in tsconfig suppresses deprecation errors, but provides no path forward for 7.0.New Features
- Temporal API types now included in built-in type libraries
es2025target withRegExp.escapesupport- Subpath imports with
#/prefix (Node.js#/*patterns) --stableTypeOrderingflag for validating code against 7.0's parallel type-checker behavior- DOM iteration types consolidated into base
lib.dom
Our Experience
We attempted upgrading to TypeScript 6 as part of our Astro 6 site dependency upgrade on 2026-03-30. We had to revert -- the Astro toolchain (
tsconfck, @astrojs/check, svelte2tsx) all still require TypeScript 5.x via peer dependencies. This is typical for early weeks after a major TS release. We'll revisit once the ecosystem catches up.What To Watch
- TypeScript 7.0 (native Go port) release timeline
- Astro and Svelte tooling support for TS 6
- Whether the
types: []default causes widespread CI breakage across the ecosystem - Preview builds of 7.0 available via
@typescript/native-previewnpm package