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))
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
--singleThreadedfor controlled comparisons. ([devblogs.microsoft.com](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/))
🛠️ Try These Free Tools
Plan your upgrade path with breaking change warnings and step-by-step guidance.
Paste a PEM certificate to check expiry and get a security grade.
Real-time CVE feed filtered by technology and severity.
Track These Releases