Skip to content
TypeScript Releases

TypeScript 7.0 Beta: platform version release preview shows 10× speed

platform version release preview: your CI is on fire because TypeScript builds scale superlinearly with repo size, and the usual fixes (more runners, more caching, more prayer) only shift the pain around. TypeScript 7.0 Beta is the first credible attempt to cut the wall-clock by changing the architecture instead of arguing about tsconfig bikesheds. Go-native […]

Jack Pauley June 7, 2026 6 min read
platform version release preview infographic
platform version release preview: your CI is on fire because TypeScript builds scale superlinearly with repo size, and the usual fixes (more runners, more caching, more prayer) only shift the pain around. TypeScript 7.0 Beta is the first credible attempt to cut the wall-clock by changing the architecture instead of arguing about tsconfig bikesheds.

Go-native compiler + shared-memory parallelism (yes, it actually moves the needle)

The headline is a port, not a rewrite: the compiler’s logic is kept structurally identical to 6.0, but executed as native Go with shared-memory parallelism. Net result: “often about 10× faster than TypeScript 6.0.” That’s not a synthetic microbench claim either; Microsoft published repo-scale numbers like VS Code 77.8s → 7.5s (10.4×) and TypeORM 17.5s → 1.3s (13.5×). ([devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/))

So what? Monorepos get their minutes back. Incremental CI stops being an arms race between remote cache hit rate and developer impatience.

Parallelism controls (because oversubscription is a real production bug)

Native TS runs many steps in parallel (parse, type-check, emit). Good news until your build system already parallelizes at the task layer and you accidentally multiply workers by workers.

The escape hatch is –singleThreaded, which forces one type-checker worker and serializes parse/emit as well. Use it when you need determinism for profiling, when debugging a regression, or when running on a constrained CI box where the OOM killer is the actual release manager. ([devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/))

Side-by-side installs (because the ecosystem isn’t ready, and you know it)

TS7 Beta ships as @typescript/native-preview with a tsgo entry point. The maintainers are explicitly optimizing for “try it without detonating your toolchain.”

They also published a compatibility package @typescript/typescript6 and recommend npm aliasing so you can keep TS6’s API surface where your tooling still expects it, while TS7 powers the actual compile/typecheck. That’s the correct shape of migration: isolate the compiler upgrade from the API upgrade. ([devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/))

Breaking behavior: TS6 deprecations become hard errors

TS7 adopts TS6 defaults (strict=true, module=esnext, and a newer default target) and throws hard errors on anything TS6 deprecated.

Translation: if you survived TS6 by stapling ignoreDeprecations onto your config, TS7 will collect that debt—with interest—at the worst possible time (like during a Friday security patch window). ([devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/))

JS/JSDoc users: Corsa trims legacy features and changes .d.ts output

The Go port’s JS support explicitly trims underused Closure-era behavior, and declaration emit for .js inputs is rewritten. That’s not a bug; it’s described as an intentional difference and “non-goal” to exactly match the old output in error-heavy JSDoc scenarios.

If you publish types from JS sources, expect diffs in generated .d.ts. Downstream consumers will notice. ([github.com](https://github.com/microsoft/typescript-go/blob/main/CHANGES.md))

Offsets changed to UTF-8 (position-sensitive tooling, meet your new enemy)

The scanner now reports node positions using UTF-8 offsets instead of UTF-16. In files with non-ASCII characters, positions will be larger than before.

Anyone doing source-map surgery, diagnostic remapping, or editor plumbing with incorrect assumptions is about to ship broken squiggles. ([github.com](https://github.com/microsoft/typescript-go/blob/main/CHANGES.md))

The industry trend here isn’t “rewrite everything in Go.” It’s that the JS/TS toolchain finally hit a scaling wall where incremental cleverness (cache layers, daemon modes, project references) can’t hide the fundamental cost of running a compiler as a big JS program inside a GC’d runtime that’s also fighting your bundler.

TypeScript’s maintainers chose the most pragmatic payoff: keep semantics stable, port the implementation, then harvest parallelism where it’s safe. That’s a direct payment against architectural debt: single-threaded type-checking bottlenecks, editor responsiveness, and the miserable reality that compile time is now a first-class DX metric. The benchmarks being published in terms of real repos (VS Code, Playwright, etc.) is also a tell: the target customer is “teams with millions of LOC,” not demo apps.

One more inconvenient truth: the ecosystem’s dependence on the compiler API is a liability. TS7 openly punts a stable programmatic API to 7.1+. That’s the cost of doing the hard work without breaking the world in one release. ([devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/))

Try the beta compiler (CLI)

npm install -D @typescript/native-preview@beta
npx tsgo --version
# run like tsc
npx tsgo -p tsconfig.json

([devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/))

Run TS6 and TS7 side-by-side (tooling compatibility)

Keep TS7 as the compiler under test, but preserve TS6 for tooling that imports typescript:

# install TS6 API under an alias
npm install -D typescript@npm:@typescript/typescript6

([devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/))

Red flags to watch for in logs

  • Hard errors on deprecated flags/constructs you previously suppressed via TS6 migration hacks. Expect failures early in argument parsing/config validation. ([devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/))
  • Editor/tooling failures that smell like “compiler API mismatch.” TS7 explicitly doesn’t promise a stable API until 7.1. ([devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/))
  • JSDoc/JS declaration diffs in generated .d.ts (especially if your build allows type errors but still emits). ([github.com](https://github.com/microsoft/typescript-go/blob/main/CHANGES.md))
  • Non-ASCII diagnostic misalignment if you have any custom tooling that assumes UTF-16 offsets. ([github.com](https://github.com/microsoft/typescript-go/blob/main/CHANGES.md))
  • CPU/RSS spikes on shared CI runners due to nested parallelism. Mitigation: try --singleThreaded for controlled comparisons. ([devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/))

🛠️ Try These Free Tools

🗺️ Upgrade Path Planner

Plan your upgrade path with breaking change warnings and step-by-step guidance.

🔐 SSL/TLS Certificate Analyzer

Paste a PEM certificate to check expiry and get a security grade.

🔒 CVE Dashboard

Real-time CVE feed filtered by technology and severity.

See all free tools →

Stay Updated

Get the best releases delivered monthly. No spam, unsubscribe anytime.

By subscribing you agree to our Privacy Policy.