Microsoft Launches TypeScript 6.0, the Final JavaScript-Based Release Before Go Rewrite

Microsoft has officially released TypeScript 6.0, marking the end of an era. This is the final version of the TypeScript compiler built on JavaScript, as the team prepares to shift to a completely rewritten compiler in Go for TypeScript 7.0.
A Bridge Between Two Eras
TypeScript 6.0, announced on March 23 by Principal Product Manager Daniel Rosenwasser, is designed as a transition release. Its primary purpose is to help developers prepare their codebases for the upcoming native Go-based compiler, known internally as Project Corsa.
The Go-based TypeScript 7.0 compiler is described as "extremely close to completion" with broad internal adoption at Microsoft. Early benchmarks show compile time improvements of up to 10x for large codebases, along with significantly reduced memory usage.
Key Features in TypeScript 6.0
New Default Configuration
TypeScript 6.0 ships with modernized defaults that reflect current best practices:
strict: trueis now the default, encouraging safer code out of the boxmodule: esnextreplaces the oldcommonjsdefaulttarget: es2025follows a floating current-year target strategytypes: []stops automatic@typespackage scanning, improving build times by 20-50% in many projects
ECMAScript 2025 Support
The release adds full support for ES2025 features, including the Temporal API types, RegExp.escape(), and Map/WeakMap upsert methods (getOrInsert, getOrInsertComputed).
Improved Type Inference
Functions without explicit this usage are no longer treated as contextually sensitive, which improves type inference in generic calls, especially with method syntax in object literals.
Subpath Imports
Support for the #/ prefix in Node.js subpath imports eliminates the need for intermediate path segments, simplifying project configuration.
Major Deprecations and Removals
TypeScript 6.0 removes several legacy features that will not be carried over to the native compiler:
- ES5 target is deprecated, with ES2015 now the minimum
--moduleResolution nodeis removed in favor ofnodenextorbundler--outFileis gone, with the team recommending bundlers instead- AMD, UMD, and SystemJS module formats are no longer supported
- Import assertions using the
assertskeyword are replaced by thewithsyntax
The team recommends using the experimental ts5to6 codemod tool to automate migration, and setting "ignoreDeprecations": "6.0" as a temporary workaround if needed.
Preparing for TypeScript 7.0
The --stableTypeOrdering flag is a new diagnostic tool that matches the native compiler's deterministic type ordering. While it may reduce performance by up to 25%, it helps developers identify and fix code that depends on non-deterministic type ordering before upgrading.
Microsoft emphasizes that addressing all TypeScript 6.0 deprecation warnings is essential, as deprecated features will be removed entirely in the native version.
What This Means for Developers
TypeScript 6.0 represents a clear signal from Microsoft about the future of the language. The Go-based rewrite is not just an optimization but a fundamental architectural change that will make TypeScript significantly faster and more memory-efficient. Developers should start updating their projects now to ensure a smooth transition when TypeScript 7.0 arrives.
Source: Microsoft Developer Blog
Discuss Your Project with Us
We're here to help with your web development needs. Schedule a call to discuss your project and how we can assist you.
Let's find the best solutions for your needs.