On July 8, 2026, Microsoft shipped TypeScript 7.0 — the most fundamental refactor of the language since its 2012 debut. The entire compiler was ported line-by-line from TypeScript/JavaScript to Go under the internal codename Project Corsa, fulfilling Anders Hejlsberg's March 2025 "10x speedup" commitment sixteen months later.
This is not another "type stripper." Tools like esbuild, swc, and Biome erase types and transpile without checking; TypeScript 7 is a complete type checker and declaration-file generator running at native speed. It closes the awkward split that has defined the JS toolchain for five years: fast paths skip type-checking, type-checking paths are slow enough that teams like Slack burn several minutes per merge in CI.
Benchmark: 125.7s → 10.6s
These numbers are not synthetic micro-benchmarks — Microsoft fed its largest public codebases through the compiler:
- VS Code (~2.3M LOC): 125.7s → 10.6s, 11.9x
- Sentry: 139.8s → 15.7s, 8.9x
- Bluesky: 24.3s → 2.8s, 8.7x
- Playwright: 12.8s → 1.47s, 8.7x
- tldraw: 11.2s → 1.46s, 7.7x
- typescript-eslint has published peer ranges allowing only TypeScript below 6.1.0; installing 7.0 throws
ERESOLVEdirectly. - ts-morph is sneakier: it fails silently and emits wrong output rather than erroring.
- React / Next.js: fully supported, upgrade anytime.
- Vue, Svelte, Astro, MDX: base type-checking works; editor template type-checking waits for 7.1.
- Angular: still under evaluation.
- webpack loader: also waits for 7.1 (no API surface yet).
strictandmodule: esnextare now defaults.target: es5,baseUrl,moduleResolution: node10, anddownlevelIterationare removed entirely.- AMD / UMD / SystemJS module formats are gone.
--checkers(default 4): concurrent type-check threads.--builders: parallelizes project references.- If your toolchain is
tsc+ a bundler — upgrade now. Go through 6.0 first, then straight to 7. - If you depend on type-aware lint or framework language tools — use the compatibility alias so 7 runs the build, keep type-aware parts on 6, and wait for 7.1 to land the new API before fully switching.
Early-adopter reports corroborate the numbers. Slack's CI type-check time fell from ~7.5 minutes to 1.25 minutes; Microsoft's own News Services team claims roughly 400 engineer-hours saved per month. About half the speedup is native code, half is shared-memory multithreading — which also explains editor gains: opening an error-laden file in the VS Code codebase drops from 17.5s to under 1.3s. Memory use falls ~18%, and language-service crashes drop noticeably.
Why Go, not Rust? The community pushed back in 2025, but Go is precisely why delivery happened in sixteen months. The team did not redesign the compiler — they ported it nearly function-by-function. Go's garbage collector and structural style made that feasible; a Rust rewrite would not. Because this was a port rather than a rewrite, the 7.0 checker behaves identically to 6.0: same type inference, same errors, same output. That property makes the 10x figure credible rather than a "new codebase" footnote.
The One Big Caveat: API Ships in 7.1
TypeScript 7.0 ships no stable programmatic API. This is not a footnote. typescript-eslint's type-aware rules, Vue's vue-tsc, and the language tools for Svelte, Astro, MDX, and Angular are all driven through the compiler API — and none of them work with 7.0. Microsoft says the new API lands in 7.1, with releases roughly every 3–4 months afterward.
The consequences are concrete:
Microsoft shipped a compatibility package: npm install -D typescript@npm:@typescript/typescript6 keeps the old compiler (and its API) under an alias, while typescript points at 7. It works, but your node_modules now houses two compilers that can drift apart.
Framework status:
Migration Advice: 6.0 as Bridge, 7.1 Closes the Hole
The migration path is deliberately staged: 6.0 is the bridge, where legacy options became deprecation warnings; 7.0 turns them into hard errors. So upgrade to 6.x first, clear the warnings, then move to 7.0.
Most config-level breakages are beneficial:
For projects still emitting ES5, Microsoft has officially exited that market — transpile downstream using Babel or swc. Budget a day for medium codebases; budget more if baseUrl references are everywhere.
Once on 7, the new parallelism knobs pay off in CI:
Cranking up --checkers on a beefy CI runner is free speed the old compiler could never deliver.
Honest adoption verdict: