【TypeScript】TypeScript 6.0 移行ガイド — 5.x からの手順と新機能

TypeScriptのロゴと「TypeScript 6.0 移行ガイド」「5.x から 6.0」の文字を配したアイキャッチ画像

TypeScript 6.0 への移行手順を、公式ツール ts5to6 による自動修正と、設定の非推奨化がもたらす破壊的変更の両面から整理します。移行後も残りやすい注意点と、検証環境で確かめた挙動も添え、新機能の要点も補足しました。

この記事の情報は2026年9月15日時点で再確認したものです。
TypeScript 6.0 は2026年3月23日リリース。その後 TypeScript 7.0 が2026年7月8日にリリースされ、コンパイラは Go 製に切り替わりました。本記事中の「次期 7.0」という記述は、この追記の時点ではすでにリリース済みです。現在の npm 最新版は 7.0.2 です。

目次

この記事が解決する悩み

  • TypeScript 6.0に上げたら何が壊れるのか不安
  • baseUrlやmoduleResolutionの変更にどう対応すればいいのか分からない

対象読者: TypeScriptでアプリを書いている人
前提知識: TypeScript 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 言語で書き直されました。2026年7月8日にリリース済みで、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.js や date-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 に依存している場合は、明示的に設定してください。

tsconfig の baseUrl 非推奨化

これまで baseUrl と paths を組み合わせて使っていた相対インポートの設定が非推奨になりました。理由と直し方は「baseUrl が非推奨になった理由と tsconfig の直し方」にまとめています。

moduleResolution の整理

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

baseUrl が非推奨になった理由と tsconfig の直し方

TypeScript 6.0 で baseUrl が非推奨になったのは、パス解決の基準を暗黙に決めてしまう設定だったからです。tsconfig の直し方は、baseUrl を消して paths をフルパスで書き直すだけです。

baseUrl が非推奨になった理由

baseUrl は、相対インポートの解決基準を1つの設定値に委ねる仕組みでした。

基準が設定ファイルとディレクトリ構成の両方に依存すると、rootDir を変えただけで解決先がずれます。6.0 ではその暗黙の基準をやめ、paths に明示的に書く方式へ寄せられました。

tsconfig の直し方(baseUrl を削除する)

移行は2ステップです。まず baseUrl の行を削除し、次に paths の値を解決先そのものに置き換えます。

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

上の設定は、次のように書き換えます。

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

ポイントは、baseUrl 基準だった ./* が tsconfig からの相対パス ./src/* になることです。解決先が設定ファイルから見た位置で書かれるので、baseUrl はもう要りません。

ビルドエラー TS5101 の直し方

baseUrl を残したまま型チェックを走らせると、次のエラーで止まります。

tsconfig.json(6,5): error TS5101: Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0.

TS5101 は ignoreDeprecations を足せば消せますが、消えるのはエラー表示だけです。TypeScript 7.0 では非推奨オプション自体が削除されているので、TS5101 は素直に baseUrl を削って直すのが結局は近道ですね。

実践: 実際の移行手順

ステップ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 オプションが削除されたので、移行は早めに済ませてくださいね。

実測メモ: TS 6.0.2 で baseUrl を残したまま型チェックすると、tsconfig.json(6,5): error TS5101: Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0. で止まりました。"ignoreDeprecations": "6.0" を足すとエラーは消えますが、あくまで一時しのぎです。

まとめ

項目 内容
リリース日 2026年3月23日
JS製コンパイラ 最後のバージョン(7.0 は Go 製で2026年7月8日にリリース済み)
主要新機能 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 プロジェクトを公開しましょう。

検証環境

OS Windows 11 (build 10.0.26200)
CPU AMD Ryzen 9 PRO 8945HS w/ Radeon 780M Graphics
メモリ 28GB
言語/ツール TypeScript 6.0.2(npx経由) / Node.js 22.23.2
使用コマンド npx -p typescript@6.0.2 tsc -p tsconfig[.ignore].json
測定日 2026-09-17

上記の環境で実際に実行して確認した結果です。環境が異なる場合は挙動が変わることがあります。

baseUrl を含む tsconfig を TS 6.0.2 で型チェックした結果(ignoreDeprecations の有無で挙動が変わる)
baseUrl を含む tsconfig を TS 6.0.2 で型チェックした結果(ignoreDeprecations の有無で挙動が変わる)

参考

本文の記述は以下の一次情報を確認して書いています。

あわせて読みたい

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

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

コメント

コメントする

CAPTCHA


目次