【TypeScript】TypeScript 6.0 移行完全ガイド2026:5.xからの移行手順と新機能まとめ

目次

結論

TypeScript 6.0 への移行は、公式の ts5to6 ツールを使えばほぼ自動で完了します。

npx ts5to6 --project tsconfig.json

どうしても時間がない場合は、tsconfig.json に応急処置を施せば今の設定をそのまま維持できます。

{
  "compilerOptions": {
    "ignoreDeprecations": "6.0"
  }
}

ただしこれはあくまで一時的な逃げ道で、TypeScript 7.0 では完全に削除されます。余裕のあるうちに正しく移行しておきましょう。

TypeScript 6.0 とは何か

2026年3月23日、Microsoft は TypeScript 6.0 を正式リリースしました。このバージョンには特別な意味があります。なんと、JavaScript で書かれた最後の TypeScript コンパイラ なんです。

次期 TypeScript 7.0(コードネーム「Corsa」)では、コンパイラが Go 言語で完全に書き直され、約10倍の高速化が計画されています。6.0 はその橋渡しとして、現在の JS コードベースでリリースされる最後のバージョンですね。

とはいえ、6.0 自体にも多くの新機能と破壊的変更が含まれています。プロジェクトを最新環境に追従させるためにも、移行は避けて通れません。

新機能ピックアップ

Temporal API の型定義

JavaScript に待望の日時ライブラリ Temporal が ES2025 として標準化され、TypeScript 6.0 ではその型定義が標準で付属します。

const now = Temporal.Now.instant();
const zoned = Temporal.ZonedDateTime.from({
  timeZone: "Asia/Tokyo",
  instant: now
});
console.log(zoned.toString()); // 2026-09-02T...

もう moment.jsdate-fns に頼る必要はありませんね。

RegExp.escape

ユーザー入力を正規表現で扱うとき、エスケープ処理を自前で書く必要がなくなります。

const userInput = "(hello.world)";
const pattern = new RegExp(RegExp.escape(userInput), "g");
// エスケープ済み: \(hello\.world\)

Map.getOrInsert

マップに対する「なければ作って返す」イディオムが1メソッドで書けるようになりました。

const cache = new Map<string, number[]>();
const list = cache.getOrInsert("users", () => []);
list.push(42);

破壊的変更と移行手順

デフォルト設定の変更

6.0 から tsconfig.json のデフォルト値が大幅に変わりました。

  • strict: true がデフォルトに
  • target: "es2025" がデフォルトに
  • module: "esnext" がデフォルトに

すでに strict モードで運用しているプロジェクトなら影響はほとんどありません。古いプロジェクトで "strict": false に依存している場合は、明示的に設定してください。

baseUrl の非推奨化

これまで baseUrlpaths を組み合わせて使っていた相対インポートの設定が非推奨になりました。

{
  "compilerOptions": {
    "baseUrl": "./src",
    "paths": {
      "@/*": ["./*"]
    }
  }
}

代わりに、各パスを明示的に指定する方法が推奨されます。

{
  "compilerOptions": {
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}

paths 自体は有効です。単に baseUrl に頼って相対解決する方法が非推奨になっただけなので、パスをフルに書けば問題ありません。

moduleResolution の整理

moduleResolution: "node" が非推奨になり、"node16""bundler" を使うのが標準です。

実践: 実際の移行手順

ステップ1: npx ts5to6 を実行

npx ts5to6 --project tsconfig.json

このツールが baseUrl の削除と rootDir の調整を自動で行います。

ステップ2: エラーを確認して修正

npx tsc --noEmit

残ったエラーを1つずつ潰していきます。多くのケースでは paths の書き方を調整するだけで済みます。

ステップ3: 応急処置(時間がない場合)

{
  "compilerOptions": {
    "ignoreDeprecations": "6.0"
  }
}

この設定を追加すると非推奨警告が抑制され、既存のコードがそのまま動きます。ただし、TypeScript 7.0 ではすべての deprecated オプションが完全に削除されるため、必ず移行計画を立ててくださいね。

まとめ

項目 内容
リリース日 2026年3月23日
JS製コンパイラ 最後のバージョン(次期7.0はGo製)
主要新機能 Temporal, RegExp.escape, Map.getOrInsert, ES2025標準対応
デフォルト変更 strict: true, target: es2025, module: esnext
非推奨 baseUrl, moduleResolution: “node”
移行ツール npx ts5to6

TypeScript 6.0 は「橋渡し」のリリースですが、だからといって軽く見るのは危険です。デフォルト設定の変更や baseUrl の非推奨化は、多くのプロジェクトに影響を与えます。

とはいえ、公式の ts5to6 ツールが優秀なので、移行作業そのものは思ったよりあっさり終わりますよ。この機会に TSConfig を見直して、7.0 に備えたクリーンな設定にしておきましょう。

【広告】お名前.com でドメインを取得して、TypeScript プロジェクトを公開しましょう。

【広告】このサイトはConoHa WINGで運営しています。安定した高速サーバーで快適にブログを書けています。いつもありがとう!!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次