The role of TypeScript 6.0 — a bridge release
On March 23, 2026, Microsoft officially released TypeScript 6.0. This version represents the final major release of the current JavaScript implementation.
The upcoming TypeScript 7.0 will feature a native compiler completely rewritten in Go, bringing dramatic performance improvements through shared-memory multithreading. TypeScript 6.0 is designed as a "bridge" to ensure a smooth transition.
Default setting changes — the biggest impact
The first thing to address in TypeScript 6.0 is the changes to default values.
| Setting | TS 5.x default | TS 6.0 default | Impact |
|---|---|---|---|
strict | false | true | Stricter type checking |
module | commonjs | esnext | Module resolution method changed |
target | ES2017 | ES2025 | Target JS output version raised |
strict: true becomes the default
In projects that have not explicitly set strict: true up to now, updating to TypeScript 6.0 may trigger a large volume of new type errors.
// tsconfig.json — 既存プロジェクトで非strictだった場合
{
"compilerOptions": {
// TS 6.0移行時に明示的にfalseを指定して段階的に対応
"strict": false
}
}
Projects that were already developing with strict: true will not be affected.
module default changes to esnext
Projects that rely on CommonJS require() syntax will need to explicitly specify module: "commonjs". For new projects, proceeding with esnext presents no issues.
New standard features
TypeScript 6.0 adds type definitions for the ES2025 specification.
RegExp.escape
Type definitions have been added for RegExp.escape(), which safely escapes special characters in regular expressions.
// ES2025のRegExp.escape
const userInput = "hello.world*";
const escaped = RegExp.escape(userInput);
// → "hello\\.world\\*"
const regex = new RegExp(escaped);
Temporal API
Type definitions for the Temporal API, the new standard for date and time manipulation, have been added.
// Temporal APIの型定義が利用可能に
const now = Temporal.Now.plainDateTimeISO();
const deadline = now.add({ hours: 2, minutes: 30 });
Consolidation of DOM types
dom.iterable and dom.asynciterable have been merged into lib.dom, eliminating the need to specify them separately.
// TS 5.x — 個別指定が必要だった
{
"compilerOptions": {
"lib": ["dom", "dom.iterable", "dom.asynciterable", "esnext"]
}
}
// TS 6.0 — domに統合済み
{
"compilerOptions": {
"lib": ["dom", "esnext"]
}
}
Preparing for the migration to TypeScript 7.0
The most critical role of TypeScript 6.0 is assisting the migration to Go-based TS 7.0.
The —stableTypeOrdering flag
In TS 7.0, the sorting method for union types will change. While current TypeScript sorts by the order of type ID assignment, 7.0 sorts using a content-based deterministic algorithm.
# TS 6.0で7.0互換の型順序を試す
tsc --stableTypeOrdering
Enabling this flag causes declaration outputs (.d.ts) to be generated in the same order as TS 7.0, allowing you to review differences prior to migrating.
Note: Because this flag can cause a slowdown of up to 25% in type-checking speed, we recommend using it for verification purposes within CI environments.
Recommended migration steps
1. TS 6.0にアップデート
└→ デフォルト変更による型エラーを修正
2. --stableTypeOrderingで宣言出力を比較
└→ TS 7.0との差分を事前確認
3. TS 7.0のNightly Previewで検証(任意)
└→ npm i @typescript/native-preview
└→ VS Code拡張も利用可能
4. TS 7.0正式版にアップデート
Trying the TS 7.0 preview
The Go-based TypeScript 7.0 is already available as a nightly build.
# npmパッケージとして試す
npm install @typescript/native-preview
# VS Code拡張としても利用可能
# → 拡張機能マーケットプレイスで "TypeScript Native Preview" を検索
Migration checklist
Here is a checklist for migrating existing projects to TypeScript 6.0.
- Check the
strictsetting intsconfig.json(ensure you are not relying on an implicit false) - Check the
modulesetting (specify explicitly if dependent on CommonJS) - Check the
targetsetting (specify explicitly if targeting environments without ES2025 support) - Remove separate entries for
dom.iterableanddom.asynciterablefrom yourlibconfiguration - Enable
--stableTypeOrderingin CI and verify declaration output diffs - Verify TS 6.0 support across dependent libraries
Conclusion
Rather than flashy new capabilities, TypeScript 6.0 is focused on modernizing defaults and preparing for the TS 7.0 migration.
- Default changes (strict: true, module: esnext, target: ES2025) carry the biggest impact
- RegExp.escape, Temporal API, and DOM type consolidation added for ES2025 support
- —stableTypeOrdering enables advance verification of TS 7.0 type ordering
- Previews of TS 7.0 (the Go-based native compiler) are already available
Migrate to TypeScript 6.0 "now" and prepare for TS 7.0 "step by step" — that is the recommended approach.
Related articles
- Next.js vs. Astro — which should you choose for static site building? — Selecting frameworks that leverage TypeScript
- How Jamstack is changing the web: the new standard for speed and security — Modern web development architecture









