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

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

lschvn4 min read

Microsoft released TypeScript 6.0 on March 23, 2026. It is, by design, the end of an era. This is the last major version of TypeScript built on the original JavaScript-based compiler codebase. TypeScript 7.0, currently in development and written in Go, will arrive later this year with native execution speeds and shared-memory multithreading.

Daniel Rosenwasser, principal program manager for TypeScript, called it a "bridge" between TypeScript 5.9 and TypeScript 7.0 β€” and the description fits. 6.0 is less about flashy new language features and more about cleaning house and getting the ecosystem ready for the jump to native code.

What's New in TypeScript 6.0

DOM type updates bring TypeScript's built-in type definitions in line with the latest web standards, including adjustments to the Temporal APIs. If you've been tracking the evolving Date alternatives in JavaScript, this matters.

Improved inference for contextually sensitive functions is the most significant user-facing change. TypeScript can now infer parameter types across property order in object literals, even with methods written in traditional syntax. Previously, passing consume before produce in a generic call would leave y typed as unknown β€” that now works correctly.

Subpath imports allow more precise paths mappings in tsconfig.json, letting you map nested imports without catching unrelated siblings.

A new migration flag β€” --goToJS β€” helps projects navigate the transition to TypeScript 7.0 by identifying patterns that will behave differently under the Go-based compiler.

Breaking Changes to Know

TypeScript 6.0 carries a meaningful number of breaking changes relative to 5.x. Microsoft is using this release to retire patterns that won't survive the jump to 7.0.

Import assertions syntax (import ... assert {...}) is now deprecated and will produce errors in 7.0. The newer import() syntax with with (e.g. import(..., { with: {...} })) is the replacement.

Function expression type-checking in generic JSX contexts has been tightened. Code that relied on loose inference here may need explicit type arguments in 6.0.

The overall direction from the TypeScript team is clear: if something is deprecated in 6.0, it will not exist in 7.0. Treat warnings as errors and plan accordingly.

Why the Go Rewrite Matters

The move to Go is not cosmetic. The current TypeScript compiler, running on Node.js, has well-documented performance ceilings β€” especially on large codebases. The Go rewrite targets two things: native execution speed and shared-memory multithreading, which the current architecture cannot leverage effectively.

Early benchmarks from Microsoft suggest the Go-based compiler is significantly faster at type-checking large projects. That's the main thing keeping large enterprise TypeScript codebases awake at night.

What This Means for Your Projects

If you're on TypeScript 5.x, upgrading to 6.0 should be relatively straightforward for most projects β€” but read the breaking changes list before you do. If you're on an older version, this is the moment to audit deprecated patterns and clean them up before 7.0 lands.

The TypeScript team has published guidance on the migration path at devblogs.microsoft.com/typescript.

Install the new version with:

npm install -D typescript@6

Frequently Asked Questions

Related articles

More coverage with overlapping topics and tags.

TypeScript 7 Native Preview: Project Corsa Rewrites the Compiler in Go β€” and It Changes Everything
typescript

TypeScript 7 Native Preview: Project Corsa Rewrites the Compiler in Go β€” and It Changes Everything

Microsoft's decision to port the TypeScript compiler and language service to Go isn't just a tech demo β€” early benchmarks show the VS Code codebase compiling in 7.5 seconds versus 77.8 seconds. Here's what the native era means for your build pipeline and editor performance.
ESLint v10 Drops Legacy Config β€” And the JS Ecosystem Is Taking Notes
javascript

ESLint v10 Drops Legacy Config β€” And the JS Ecosystem Is Taking Notes

ESLint's biggest breaking-change release in years finalises flat config, removes eslintrc support entirely, and adds JSX reference tracking. But the bigger story might be what's nipping at its heels.
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.

Comments

Log in Log in to join the conversation.

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