TypeScript 6.0 Ships as the Last JavaScript-Built Release, Setting the Stage for a Go-Powered Future
Microsoft has released TypeScript 6.0, the final major version built on the original JavaScript compiler codebase. The release introduces sweeping default changes, deprecates legacy module formats, and adds a migration flag to prepare codebases for TypeScript 7.0, which will be built entirely in Go.
Microsoft released TypeScript 6.0 on March 23, marking the end of an era for one of the most widely adopted programming languages in the JavaScript ecosystem. According to the official announcement, the release is positioned as a deliberate bridge between TypeScript 5.9 and the forthcoming TypeScript 7.0, which will be built on a completely new compiler written in Go.
A Transition Release by Design
Unlike typical major versions that arrive loaded with new language features, TypeScript 6.0 focuses primarily on breaking changes and deprecations intended to align existing codebases with the behavior of the upcoming Go-based compiler. The TypeScript team described the release as the version that helps developers “adjust their codebases for TypeScript 7.0” rather than a feature showcase in its own right.
The most immediately visible change is to default settings. The strict flag is now true by default, the module option defaults to esnext instead of commonjs, and the target setting now points to es2025. Projects that previously relied on implicit defaults may need to add explicit configuration to avoid unexpected behavior changes during the upgrade.
Legacy Formats and Options Removed
TypeScript 6.0 removes support for several long-deprecated module formats including AMD, UMD, SystemJS, and the none module value. The --moduleResolution classic option has been removed entirely, with nodenext and bundler serving as the recommended replacements. The --outFile bundling option is also gone, with the team directing developers toward external bundlers.
The minimum compilation target has been raised to ES2015, deprecating target: es5 output. Related options such as --downlevelIteration, which only applied to ES5 emit, have been deprecated as well. The esModuleInterop and allowSyntheticDefaultImports flags can no longer be set to false, making safer interop behavior the permanent default.
New Features and Standards Support
Despite its transitional focus, TypeScript 6.0 does ship genuine new capabilities. The release adds built-in types for the Temporal API, which reached Stage 4 in the ECMAScript standards process. New standard library additions include Map and WeakMap upsert methods (getOrInsert and getOrInsertComputed), RegExp.escape support, and es2025 target declarations.
The DOM library has been consolidated so that dom.iterable and dom.asynciterable are included by default, eliminating a common source of configuration confusion. Support for Node.js subpath imports starting with #/ has been added under nodenext and bundler module resolution modes.
Preparing for TypeScript 7.0
A new --stableTypeOrdering flag allows developers to preview how TypeScript 7.0 will handle type ordering deterministically, reducing output differences between the current and future compilers. The TypeScript team noted in the announcement that the Go-based rewrite is “extremely close to completion” with a release expected “within a few months.”
As InfoQ reported during the beta cycle, the native compiler will take advantage of shared-memory multithreading to deliver dramatically faster compilation times, while maintaining API compatibility with the JavaScript-based toolchain.
Migration Considerations
The TypeScript team identified two changes likely to affect the largest number of projects. First, the types field now defaults to an empty array rather than auto-discovering @types packages, which means most projects will need to add explicit entries such as "types": ["node"] to their tsconfig.json. Second, rootDir now defaults to the directory containing tsconfig.json instead of being inferred from source files, which may alter output directory structures for projects with non-standard layouts.
For teams not ready to address all deprecation warnings immediately, a temporary "ignoreDeprecations": "6.0" setting can suppress them until TypeScript 7.0 arrives.
Developers can install the release via npm with npm install [email protected] and preview the upcoming native compiler through the @typescript/native-preview package.