TypeScript 6.0リリース — Go移植への橋渡しとなる破壊的変更の全容

はじめに

2026年3月23日、MicrosoftはTypeScript 6.0を正式リリースしました。このバージョンは「JavaScriptで書かれた最後のTypeScript」として位置づけられており、次のTypeScript 7.0ではコンパイラがGoで書き直されます。つまり、6.0はGoベースの新時代への橋渡しリリースです。

strictのデフォルト有効化、ES5ターゲットの廃止、CommonJSデフォルトの終了など、多くの破壊的変更が含まれています。この記事では、6.0の主要な変更点と、来たるTypeScript 7.0に向けて今やるべき準備を解説します。

TypeScript 6.0の主要な変更点

デフォルト値の大幅変更

6.0で最もインパクトが大きいのは、tsconfig.jsonのデフォルト値が一新されたことです。

  • strict: falsetrue に変更。新規プロジェクトでは明示的に設定する必要がなくなりますが、既存のstrict: falseで運用していたプロジェクトは挙動が変わります。
  • module: commonjsesnext に変更。Node.jsのESM対応が十分に進んだことを反映しています。
  • target: es3es2025 に変更。長らく残っていた古いデフォルトがようやく現代的な値になりました。
  • types: 自動列挙 → [](空配列) に変更。@types/node等を使う場合は明示的に"types": ["node"]を指定する必要があります。Microsoftによると、この変更だけでビルド時間が20〜50%改善するケースがあるとのことです。

廃止されるオプション

以下のオプションは6.0で非推奨となり、7.0で完全に削除されます。

  • target: es5 — モダンブラウザ前提の時代に合わせた判断です
  • --moduleResolution node / classicnode16bundlerへの移行が推奨されます
  • --outFile — バンドラーの役割はwebpackやVite等のツールに委ねる方針です
  • --baseUrl — パスマッピングはpathsオプションで対応可能です
  • --module amd / umd / systemjs — ESMへの一本化が進みます

6.0では"ignoreDeprecations": "6.0"を設定すればこれらのオプションは引き続き動作しますが、7.0では完全に削除されるため、早めの対応が必要です。

新機能

破壊的変更だけでなく、新しいAPIサポートも追加されています。

  • es2025ターゲット: RegExp.escape()などES2025のビルトインAPIの型サポート
  • Temporal API: ステージ4に到達した新しい日付・時刻操作APIの型定義が追加されました。Dateオブジェクトの問題点を解消する待望のAPIです
  • Map/WeakMapのgetOrInsertメソッド: 「キーが存在しなければデフォルト値を設定して返す」というよくあるパターンを1行で書けるようになります
  • Subpath Imports #/パターン: Node.js 20で導入された#/*パターンによるモジュール解決を公式サポート

なぜGoに移植するのか — TypeScript 7.0の展望

TypeScript 6.0を語る上で避けて通れないのが、次期バージョン7.0で行われるコンパイラのGo言語への全面移植です。

パフォーマンスの劇的な改善

Microsoftが公開しているベンチマークでは、Go版コンパイラ(tsgo)は現行のtscに比べて以下の改善を示しています。

  • VS Codeのソースコード(150万行): 89秒 → 8.74秒(10.2倍高速化
  • Sentryプロジェクト: 133秒 → 16秒(8.3倍高速化
  • 型チェック: 最大30倍高速化
  • メモリ使用量: 2.9分の1に削減

10万行未満の小規模プロジェクトでも2〜5倍の高速化が見込まれています。大規模プロジェクトほど恩恵が大きいのは、Goの共有メモリマルチスレッドが効率的に活用されるためです。

なぜGoが選ばれたのか

コンパイラの移植先としてRustやC++も候補に挙がりましたが、最終的にGoが選ばれた理由は明確です。

  • コンパイル速度: Go自体のコンパイルが高速で、開発サイクルが短い
  • メモリ安全性: ガベージコレクションにより、Rustのような所有権管理の複雑さを回避
  • 並行処理: goroutineとチャネルによる組み込みの並行処理プリミティブ
  • 実績: Go自体がコンパイラ実装で豊富な実績を持つ言語

TypeScript 7.0の安定版リリースは2026年内が目標とされており、VS Code拡張機能としてのopt-in対応は2026年前半〜中盤に提供される見込みです。

エンジニアが今やるべき準備

TypeScript 6.0へのアップデートは「7.0への準備」という意味合いが強いため、段階的に対応することをおすすめします。

すぐにやるべきこと:

  1. tsconfig.json"types": ["node"]等を明示的に指定する(ビルド時間改善にも直結)
  2. target: es5を使っている場合はes2020以上への移行を検討する
  3. --moduleResolution nodeを使っている場合はnode16またはbundlerに切り替える

6.0アップデート時にやること:

  1. デフォルト値の変更による影響を確認(特にstrict: true化)
  2. 非推奨警告が出るオプションを洗い出し、移行計画を立てる
  3. "ignoreDeprecations": "6.0"で一時的に警告を抑制しつつ、順次対応する

7.0リリースまでに完了すべきこと:

  1. 非推奨オプションの完全な除去(7.0で削除されるため)
  2. outFileを使っている場合のバンドラー移行
  3. AMD/UMD/SystemJSモジュールのESM移行

今日のその他の注目ニュース

バージョン管理の未来 — Bram Cohen氏の提言

Hacker Newsで627ポイントを獲得した記事で、BitTorrent開発者のBram Cohen氏がバージョン管理システムの未来について考察しています。Gitの限界と次世代VCSの方向性について議論が活発化しています。

iPhone 17 ProでLLMの400Bパラメータモデルが動作

デモ動画がHacker Newsで295ポイントを記録。モバイルデバイス上でのLLM推論がここまで進んでいることに驚きの声が上がっています。エッジAIの実用化が加速しています。

Claude Codeに長期記憶を持たせる実践

はてなブックマークで423ブクマを獲得したZenn記事。AIコーディングアシスタントに永続メモリを追加することで、壁打ちの質が大きく向上したという実践レポートです。

まとめ

  • TypeScript 6.0はJavaScriptベース最後のリリースであり、Go移植版の7.0への橋渡しとなるバージョン
  • strictデフォルト化、ES5廃止、CommonJS廃止など大量の破壊的変更を含む
  • 非推奨オプションは6.0ではignoreDeprecationsで延命可能だが、7.0で完全削除される
  • TypeScript 7.0では最大10倍の高速化メモリ使用量の大幅削減が実現される見込み
  • 今のうちに非推奨オプションの移行を進めておくことが、7.0へのスムーズな移行の鍵

TypeScriptの歴史の中でも最大級の転換期です。6.0のうちに移行作業を完了させておけば、7.0の恩恵をリリース直後から享受できるでしょう。

ソース