What is TypeScript 7.0?
Microsoft announced the Release Candidate on June 18, 2026 and shipped TypeScript 7.0 on July 8, 2026. While most TypeScript updates add new types or syntax, 7.0 is a "foundation" release. The team has ported the entire compiler and language service—previously written in TypeScript and running on Node.js—into Go (Golang).
This project, internally codenamed Project Corsa, isn't a "vibe-release" or a from-scratch rewrite. It is a systematic port that preserves the exact type-checking semantics of TypeScript 6.0 while unlocking the speed of native code and shared-memory parallelism.
Why did the compiler need a Go rewrite at all?
The old compiler and language server were written in TypeScript, running on a single JavaScript thread. For a decade that was fine, because V8 JIT-compiles aggressively. Two structural ceilings made further single-core scaling impossible.
First, JavaScript is single-threaded for CPU-bound work. An async/Promise.all loop looks parallel but still executes sequentially on one thread, so walking thousands of ASTs concurrently does not actually divide work across cores. Anders Hejlsberg, the creator of C# and a Technical Fellow at Microsoft, put the constraint plainly: JavaScript engines are optimised for UI and browser workloads, not compute-intensive compiler passes.
Second, Web Workers do not share objects between threads. You can only pass raw bytes (SharedArrayBuffer), so handing a parsed syntax tree to a worker means serialising the whole structure, copying it, and rebuilding it on the other side. For a large source file the serialisation frequently costs more than the work.
Go removes both ceilings. It compiles to native machine code and its goroutine scheduler gives shared-memory multithreading with objects passed by reference across cores. Microsoft attributes roughly half the speedup to native code and the other half to shared-memory concurrency.
Why Go instead of Rust?
While tools like Zed and SWC use Rust, Microsoft chose Go for the TypeScript port because of its "architectural parity" with the original codebase. Go’s garbage collection and concurrency models aligned more closely with the existing compiler's structure, allowing the team to port the 1.5 million lines of code in just over a year without diverging from the stable type-checking logic we rely on. The design notes frame it as engineering fit rather than preference: Go's portable runtime, mature GC and goroutine concurrency were what a large parallel compiler pipeline needed.
Performance benchmarks
These are Microsoft's published figures from the TypeScript 7.0 GA announcement, run on the same hardware for each comparison.
Full-build speed, default flags
| Codebase | TypeScript 6 | TypeScript 7 | Speedup |
|---|---|---|---|
| vscode (1.3M LOC) | 125.7 s | 10.6 s | 11.9x |
| sentry | 139.8 s | 15.7 s | 8.9x |
| bluesky | 24.3 s | 2.8 s | 8.7x |
| playwright | 12.8 s | 1.47 s | 8.7x |
| tldraw | 11.2 s | 1.46 s | 7.7x |
The pattern matters more than any single row: the bigger the codebase, the bigger the relative win.
Full-build speed with --checkers 8
| Codebase | TypeScript 6 | TypeScript 7 (--checkers 8) |
Speedup |
|---|---|---|---|
| vscode | 125.7 s | 7.51 s | 16.7x |
| sentry | 139.8 s | 12.08 s | 11.6x |
| bluesky | 24.3 s | 2.01 s | 12.1x |
| playwright | 12.8 s | 1.16 s | 11x |
| tldraw | 11.2 s | 1.06 s | 10.6x |
Memory usage goes down
A native rewrite could have ballooned memory. It did not — Go's runtime and the rewritten data structures trimmed peak memory on every measured codebase:
| Codebase | TypeScript 6 | TypeScript 7 | Memory delta |
|---|---|---|---|
| vscode | 5.2 GB | 4.2 GB | −18% |
| sentry | 4.9 GB | 4.6 GB | −6% |
| bluesky | 1.8 GB | 1.3 GB | −26% |
| playwright | 1.0 GB | 0.9 GB | −11% |
| tldraw | 0.6 GB | 0.5 GB | −15% |
For CI where every megabyte of RAM is a line item, that compounds the speedup: you build faster and spin up smaller runners.
RC-era figures, for reference
The June 18 RC announcement reported a different set of absolute times on different hardware and a different VS Code line count. They are kept here so nobody reading the earlier coverage thinks one set is wrong — the GA numbers above are the current ones.
| Project | Lines of Code | TS 6.0 Time | TS 7.0 RC Time | Speedup |
|---|---|---|---|---|
| VS Code | 1.5 Million | 77.8s | 7.5s | 10.4x |
| Sentry | ~800k | 133s | 16s | 8.2x |
| TypeORM | ~250k | 17.5s | 1.3s | 13.5x |
| Playwright | ~300k | 11.1s | 1.1s | 10.1x |
Source: Microsoft Developer Blog (June 2026).
Editor and language-server speed
On the VS Code codebase, the time to show the first error after opening a file dropped from roughly 17.5 seconds to under 1.3 seconds — about 13x. That is the biggest daily quality-of-life win: you change a line and the squiggles arrive in milliseconds.
The new Go language server is also more stable than the 6.0 server:
- failing language-server commands down by over 80%
- server crashes down by over 60%
The "restart VS Code because TypeScript stopped working" tax largely disappears.
How to install and run TypeScript 7
The npm package itself was upgraded — there is no separate SDK.
# Standard per-project install (now gives you TypeScript 7)
npm install -D typescript
# Verify
npx tsc --version # prints 7.0.x or later
For global, NuGet and Visual Studio routes, see the official download page.
VS Code needs the TypeScript 7 extension
By default VS Code's built-in engine still ships TypeScript 6 for compatibility. To get the Go-powered language server, install the dedicated "TypeScript 7" extension from the Marketplace; after that, any workspace depending on typescript@7 picks up the native server automatically. Visual Studio (the full IDE) enables TS 7 based on the workspace with no extension needed.
The Power of Parallelism: New Flags
For the first time, tsc can natively split its work across your CPU cores. This is managed via three new flags:
--checkers [N]: Controls how many parallel type-checking workers to spawn. Defaults to 4. On high-end developer workstations, you can push this to 8 or 16 to cut times even further. Setting it to1falls back to single-threaded checking, which is useful for reproducing order-dependent results.--builders [N]: Parallelizes builds for project references (monorepos). It multiplies with--checkers, so--checkers 4 --builders 4can spawn up to 16 concurrent type-checkers.--singleThreaded: Reverts to the old behavior for debugging or consistent benchmarking.
# Fastest possible full build on a 12-core laptop
npx tsc --checkers 12
# Monorepo with project references — parallel builders and checkers
npx tsc --build --checkers 4 --builders 4
Is it a port or a rewrite — and does it still behave like TypeScript?
This is the question that decides whether the upgrade is safe.
TypeScript 7 is a faithful port. The team re-implemented the existing compiler's structure and logic in Go, deliberately preserving behaviour, ordering and edge-case handling so results stay compatible with the JavaScript implementation. You should see identical type-checking output on the same codebase, only faster.
Microsoft validated this against tens of thousands of tests and real production codebases at Bloomberg, Canva, Figma, Google, Lattice, Linear, Miro, Notion, Sentry, Slack, Vanta, Vercel and VoidZero.
That is about the language. The compiler configuration is a different story, and it is where an upgrade actually bites.
Critical Breaking Changes and Defaults
TypeScript 7.0 isn't just a speed update; it’s a cleanup. Many options that were "deprecated" in version 6.0 are now hard errors. None of this changes what a given piece of code means — it changes which tsconfig.json files still compile.
1. New Baseline Defaults
strict: true: You can no longer start a project in "loose" mode without explicitly turning this off.module: esnext: The compiler now assumes modern JavaScript module systems by default.noUncheckedSideEffectImports: true: Catches errors in "empty" imports that don't actually exist on disk.
2. Removed Support
target: ES5is gone: TypeScript 7.0 requires a target of ES2015 or higher. If you need to support legacy browsers (IE11), you must now use a downstream post-processor like Babel or ESBuild.baseUrlremoved: This legacy path-mapping shortcut is gone. You must now use the more modernpathsproperty intsconfig.json.downlevelIterationremoved: This flag is no longer supported; modern iteration is now the baseline.
3. The one real gap: no programmatic API until 7.1
TypeScript 7.0 does not expose a programmatic API. Any tool that imports from the typescript package to drive the compiler programmatically — chiefly typescript-eslint, ts-jest, ts-node and many type-aware editor plugins — cannot run on TypeScript 7 until the API lands in 7.1.
Microsoft shipped a side-by-side escape hatch. Install the compatibility package alongside the main one and you get both binaries on your PATH:
npm install -D typescript@npm:@typescript/typescript6
That gives you tsc (TypeScript 7, for builds) and tsc6 (TypeScript 6, for the API-consuming tools that have not updated). Most teams should plan to live in that split state until 7.1 ships and the ecosystem catches up.
What this means for you
If you are running a medium-to-large TypeScript project, TypeScript 7.0 is the single biggest productivity boost of the year. It effectively removes the "build tax" from your local loop.
TypeScript is now the most-used language on GitHub — it overtook Python and JavaScript in August 2025 with 2.63 million monthly contributors, a 66% year-over-year jump, in what GitHub's Octoverse 2025 report called the most significant language shift in more than a decade. That makes the compiler infrastructure, not a language nicety.
- Solo builders and small teams: install TS 7 today for your own builds and take the editor win immediately. The
tsc6compatibility package keeps un-upgraded plugins working. Pair it with a faster runtime layer like the all-in-one Node.js toolkit Nub and the whole toolchain starts to feel like Bun without switching runtimes. - Engineering leads running CI at scale: the measurable win is CI time and merge-queue throughput. Slack publicly reported type-checking dropping from ~7.5 minutes to ~1.25 minutes with a 40% reduction in merge-queue time, and Microsoft reported saving 400 developer-hours per month waiting on CI builds. Both are vendor-reported. AI coding tools are not making developers faster on their own, but removing a minute of per-change type-check latency compounds with every other lever.
- Teams shipping AI-generated TypeScript: the 80% drop in language-server failures and 60% drop in crashes mean the validator loop that catches AI-written mistakes actually runs instead of stalling. That compounds with the finding that static types catch ~94% of LLM compilation errors. Pair it with engineering safe AI agent loops for production codebases: when the compiler validates an agent's diff in milliseconds, you can afford tighter autonomy bounds and still ship safely. The same shift reshapes the developer skills gap.
Our recommendation: upgrade your own builds now; let the plugin ecosystem catch up before you delete TypeScript 6. If your codebase is large the win is not subtle — it changes whether type-checking the whole repo on every keystroke is realistic. If you have been eyeing the wider TypeScript-to-native story, pair this with our guide to compiling TypeScript to native machine code.
FAQ
Q: Is TypeScript 7.0 a different language? A: No. It is the same TypeScript language you know. Only the compiler (the tool that checks your code) has changed from a JavaScript program to a native Go program. There are no new language features gated behind the version bump.
Q: Is TypeScript 7 free?
A: Yes. TypeScript is MIT-licensed open source and installs via npm install -D typescript. There is no paid tier — the Go rewrite lowers your CI compute cost rather than adding a new one.
Q: How much faster is it on a typical codebase?
A: Microsoft's benchmarks show 8–12x faster full builds from ~12k-line repos up to 1.3M-line VS Code. Raising --checkers from 4 to 8 pushes the largest codebases to ~16.7x on suitable hardware. Editor first-error response on VS Code fell from ~17.5s to under 1.3s.
Q: Do I need to learn Go to use TypeScript 7.0?
A: Not at all. You still write TypeScript and run it in the browser or Node.js. The Go implementation is hidden inside the tsc command.
Q: Can I still run TypeScript on Node.js? A: Yes. The output of the compiler is still standard JavaScript that runs everywhere. Only the checking process is native.
Q: Do I need a multi-core machine to benefit?
A: You benefit on any modern machine, because half the speedup is just native code with no JIT overhead. More cores get you more out of --checkers and --builders; a 4-core machine still sees the native-code gain with a smaller concurrency dividend.
Q: Will my ESLint, ts-jest or ts-node setup break?
A: Not if you keep the side-by-side install. 7.0 ships without a programmatic API, so packages importing TypeScript's internals wait for 7.1. The @typescript/typescript6 compatibility package provides tsc6 so those tools keep working while you build with tsc.
Q: Why was baseUrl removed?
A: baseUrl caused significant resolution ambiguity in monorepos. The TypeScript team has been encouraging a shift to paths for years, and 7.0 finally enforces this modern standard.
Q: Is it safe to use in production?
A: It is generally available as of July 8, 2026 and was validated against production codebases at Bloomberg, Canva, Figma, Google, Notion, Sentry, Slack, Vercel and others. The only reason to hold back part of your toolchain is the missing programmatic API, which the tsc6 package covers.
Every claim here is traced to a primary source, dated, and listed under Sources. Research and drafting are AI-assisted; editing, verification and publication are human decisions, and a person is accountable for what appears on this page. How we work →







Discussion
0 comments