Skip to content
Putting technology to work.
Insights to guide decisions and action.

Search articles

What's new in TypeScript 6.0 and preparing for TS 7: analyzing the final JavaScript-based major release

Table of contents · 6 items

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.

SettingTS 5.x defaultTS 6.0 defaultImpact
strictfalsetrueStricter type checking
modulecommonjsesnextModule resolution method changed
targetES2017ES2025Target 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 strict setting in tsconfig.json (ensure you are not relying on an implicit false)
  • Check the module setting (specify explicitly if dependent on CommonJS)
  • Check the target setting (specify explicitly if targeting environments without ES2025 support)
  • Remove separate entries for dom.iterable and dom.asynciterable from your lib configuration
  • Enable --stableTypeOrdering in 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

Share this articleXFacebook
Rui Teruya

Former corporate league baseball player and founder of an IT venture. Founded the company with the drive to ride the fast-moving waves of the world and deliver truly valuable services to society.

Turn this article's theme into your company's next step

Concrete steps forward for your organization.

We organize your desired architecture, legacy systems, and operational requirements to formulate your next steps toward execution.

  • Desired architecture
  • Integration with existing environments
  • Operational requirements
Consult on development & operations initiatives

You can consult with us from the initial conceptual stage. Details from this article will be carried over to the inquiry form.

Receive the latest articles by email