TypeScript 6.0 Lands as the Last Release Before the Go Rewrite

TypeScript 6.0 Lands as the Last Release Before the Go Rewrite

lschvn

TypeScript 6.0 landed on March 23, 2026, and the Microsoft team is not hiding the ball: this is a bridge release. TypeScript 6.0 smooths the path toward TypeScript 7 — a ground-up rewrite of the compiler and language service in Go, with a 10x speedup claim already verified in preview builds.

What's actually new in 6.0

Most of the headline changes are about aligning with TypeScript 7 behavior, but a few concrete improvements landed in this release.

Less context-sensitivity on this-less functions. TypeScript 6.0 fixes a long-standing inference gap when methods and callbacks don't use this. Previously, a method like consume(y) { return y.toFixed(); } inside a generic call would fail type inference if another property came first — because TypeScript assumed this might need the generic type. Now, if this is never used, TypeScript skips the contextual sensitivity check and inference works correctly regardless of property order. This was contributed by Mateusz Burzyński.

Subpath imports now support #/ prefixes. Node.js added support for #/ as a bare subpath import prefix (instead of requiring #root/ or similar). TypeScript 6.0 supports this under --moduleResolution nodenext and bundler. No more awkward workarounds for clean internal imports.

--moduleResolution bundler + --module commonjs is now valid. Previously this combination was rejected. With --moduleResolution node deprecated, the combination of bundler + commonjs is now the recommended upgrade path for many projects.

--stableTypeOrdering flag. TypeScript 7 uses parallel type checking, which assigns internal type IDs differently depending on processing order. This can cause declaration files to differ between 6.0 and 7.0. The new flag enforces deterministic ordering in 6.0 so differences are easier to spot during migration. Note: it can add up to 25% slowdown, so it's a migration tool, not a permanent setting.

es2025 target and lib. TypeScript 6.0 adds es2025 as a valid target and lib option, including new types for RegExp.escape.

Import assertion syntax deprecated in import() calls. The import(..., { assert: {...}}) syntax is now deprecated alongside the static import ... assert {...} form.

The real headline: TypeScript 7 is close

TypeScript 6.0 exists primarily to get the ecosystem ready for 7.0. The Go rewrite — codenamed "Project Corsa" — has been in progress since early 2025. The native preview (@typescript/native-preview on npm) is already stable enough for daily use, and a VS Code extension is updated nightly.

The language service (completions, go-to-definition, rename, find-all-references) is already fully functional in the native port. The compiler's type-checking is described as "very nearly complete" — of 20,000 test cases, only 74 show differences between 6.0 and the 7.0 preview. Parallelism via shared memory is the key architectural win, enabling dramatic speedups on large monorepos.

If you're on TypeScript 6.0 today, the team encourages you to also try the TypeScript 7 preview. The two can run side-by-side via tsgo (7.0) and tsc (6.0).

FAQ

Is TypeScript 6.0 a breaking change? Not significantly. Most changes are additive or behavioral alignments with 7.0. The --stableTypeOrdering flag is new, and import assertion deprecation is a warning-level change.

Should I upgrade from 5.x to 6.0? Yes, especially if you're preparing for the 7.0 native port. The migration path from 6.0 to 7.0 is expected to be smooth.

How do I try TypeScript 7?

npm install -D @typescript/native-preview
# use tsgo instead of tsc
npx tsgo build

Or install the VS Code extension "TypeScript 7 (native preview)" from the marketplace.

Related articles

More coverage with overlapping topics and tags.

TypeScript 6.0 Ships: The Last JavaScript-Based Release Before the Go Rewrite
typescript

TypeScript 6.0 Ships: The Last JavaScript-Based Release Before the Go Rewrite

Microsoft ships TypeScript 6.0 as the final release built on the original JavaScript codebase. DOM type updates, improved inference, subpath imports, and a migration flag set the stage for the native Go-based TypeScript 7.0.
Oxc Is Quietly Building the Fastest JavaScript Toolchain in Rust — And It's Almost Ready
javascript

Oxc Is Quietly Building the Fastest JavaScript Toolchain in Rust — And It's Almost Ready

While ESLint v10 was wrestling with legacy cleanup, the Oxc project shipped a linter 100x faster, a formatter 30x faster than Prettier, and a parser that leaves SWC in the dust. Here's what the JavaScript oxidation compiler actually is.
Knip v6 Lands oxc Parser for 2-4x Performance Gains Across the Board
typescript

Knip v6 Lands oxc Parser for 2-4x Performance Gains Across the Board

The popular dependency and unused-code scanner for JavaScript and TypeScript gets a major overhaul, replacing its TypeScript backend with the Rust-based oxc-parser — and the results are dramatic.

Comments

Log in Log in to join the conversation.

No comments yet. Be the first to share your thoughts.