TypeScriptが誕生してから10年以上が経過し、ついにコンパイラの大幅な刷新が行われました。

2026年4月21日、MicrosoftはTypeScript 7.0 Betaのリリースを発表しました。

今回のアップデートは単なる機能追加にとどまりません。

コンパイラ自体を従来のTypeScriptによるセルフホストからGo言語へと移植するという、アーキテクチャレベルでの劇的な進化を遂げています。

これにより、開発環境のパフォーマンスは異次元の領域へと突入しました。

Go言語への完全移植と驚異的な高速化

TypeScript 7.0における最大のトピックは、コンパイラの基盤が全面的に書き換えられたことです。

これまでTypeScriptのコンパイラはTypeScript自身で記述され、JavaScript上で動作していましたが、新たなコンパイラはGo言語によって再構築されました。

ネイティブコードとしての実行速度と、Go言語が得意とする共有メモリによる並列処理を組み合わせることで、TypeScript 7.0はTypeScript 6.0と比較して最大10倍という圧倒的な高速化を実現しています。

大規模なコードベースを扱うエンタープライズ開発において、これまでビルドや型チェックに費やされていた時間は大幅に短縮されることになります。

構造的同一性の維持

「Beta」というラベルが付いているものの、開発チームはこの新バージョンが日常の業務ですぐに利用可能なほど安定していることを強調しています。

新しいGoベースのコンパイラは、既存のロジックをゼロから書き直すのではなく、既存の実装を忠実に移植する手法をとっています。

型チェックのロジックはTypeScript 6.0と構造的に同一であり、セマンティクス(意味論)が完全に維持されています。

すでにMicrosoft社内や、Google、Slack、Vercelといった名だたる企業の数百万行を超える大規模プロジェクトでテストされており、高い互換性と安定性が証明されています。

TypeScript 7.0 Betaを導入する方法

新しいコンパイラを試すには、npmを通じてプレビューパッケージをインストールします。

将来の安定版ではtypescriptパッケージとして統合される予定ですが、現在は以下のコマンドを使用します。

Shell
# Beta版のインストール
npm install -D @typescript/native-preview@beta

インストール後、従来のtscに代わってtsgoというエグゼクティブファイルを介してコンパイラを実行します。

Shell
# バージョンの確認
npx tsgo --version
# 出力結果: Version 7.0.0-beta

このtsgoは、コマンドの振る舞いこそ従来のtscと同じですが、内部の処理速度は驚くほど高速です。

VS Codeでの編集体験

エディタ上での体験を向上させるために、VS Code用の拡張機能「TypeScript Native Preview」も公開されています。

この拡張機能はLanguage Server Protocol (LSP)に基づいて構築されており、コマンドラインと同等のパフォーマンス向上がエディタ内でも享受できます。

オートインポート、ホバー表示、インレイヒントといった主要な機能はすでに実装されており、軽快なコーディングが可能です。

並列化による最適化の制御

TypeScript 7.0では、パース、型チェック、コード出力(Emit)といった各ステップが並列化されています。

これを制御するための新しいフラグが導入されました。

チェッカー並列化の制御

型チェックはファイル間の依存関係が複雑なため、単純に独立して実行することはできません。

TypeScript 7.0では、固定数の「型チェッカーワーカー」を作成し、作業を分担します。

フラグ説明
--checkers型チェックを行うワーカー数を指定します。デフォルトは4です。
--builders並列で実行するプロジェクトリファレンスのビルド数を制御します。
--singleThreadedすべての処理を単一のスレッドで実行します。デバッグ時に有用です。

CPUコア数が多いマシンでは、--checkersの値を増やすことでビルド時間をさらに短縮できますが、メモリ使用量も増加するため、プロジェクトの規模に応じた調整が推奨されます。

TypeScript 6.0からの移行と互換性

TypeScript 7.0は、6.0で導入された新しいデフォルト設定を継承し、非推奨とされていた機能を完全にエラーとして扱うようになります。

設定のデフォルト値の変更

7.0では以下の設定がデフォルトで有効、あるいは固定されます。

  • strict: true
  • module: esnext
  • target: 最新の安定したECMAScriptバージョン(ESNextの直前)
  • stableTypeOrdering: true (オフにできません)

特に注意が必要なのがrootDirtypesの変更です。

これまでtypesはすべての型定義を自動で読み込んでいましたが、7.0からは[](空)がデフォルトになります。

特定のパッケージが必要な場合は、明示的に指定する必要があります。

JSON
{
  "compilerOptions": {
    "types": ["node", "jest"]
  }
}

廃止された古い機能

以下の機能はサポートが終了し、使用すると致命的なエラーとなります。

  • target: es5 のサポート終了
  • moduleResolution: node (Node10相当)の廃止
  • baseUrl の廃止
  • module: amd, umd, systemjs の廃止
  • 名前空間内での module キーワードの使用禁止

モダンな開発環境への移行を促すため、古いモジュール解決システムやトランスパイルターゲットが大胆に整理されました。

JavaScriptサポートの刷新

コンパイラの移植に伴い、JavaScriptファイルの解析方法も見直されました。

これまでのJSDocベースの解析は便利でしたが、TypeScriptの本来の解析ロジックと乖離がある点が課題でした。

TypeScript 7.0では、JavaScriptとTypeScriptの解析ロジックがより一貫したものに変更されています。

具体的には、以下のJSDocパターンが変更または制限されます。

  • 型を期待する場所で値を使用できなくなり、typeof someValue と記述する必要があります。
  • @enum が特別視されなくなり、@typedef での定義が推奨されます。
  • 単独の ? は使用不可となり、any を使用します。
  • @class は関数をコンストラクタに変換しなくなりました。明示的な class 宣言が必要です。

これらの変更は、JavaScriptプロジェクトをTypeScriptへ移行する際の整合性を高めることを目的としています。

既存プロジェクトでの共存方法

TypeScript 7.0への移行をスムーズにするため、既存の6.0系と共存させる仕組みが提供されています。

安定版のリリースまでは、@typescript/typescript6というパッケージを使用することで、新旧のコンパイラを同時に扱うことができます。

package.json で以下のようにエイリアスを設定することで、既存のツールを壊さずに新バージョンを試すことが可能です。

JSON
{
  "devDependencies": {
    "typescript": "npm:@typescript/typescript6@^6.0.0"
  }
}

このように設定すると、既存のライブラリはTypeScript 6.0を参照し続け、自分たちのコードのビルドには tsgo を利用するといった柔軟な運用が可能になります。

まとめ

TypeScript 7.0 Betaのリリースは、フロントエンド開発の歴史における「スピードの革命」と言えるでしょう。

コンパイラのGo言語への移植は、これまでJavaScriptの制限によって限界が見えていたビルドパフォーマンスを劇的に改善しました。

今回のアップデートのポイントを振り返ると以下の通りです。

  • Go言語への移植により、最大10倍の高速化を実現。
  • tsgo という新しいエグゼクティブファイルで実行。
  • マルチコアを活かした並列型チェックの導入。
  • 古いECMAScriptターゲットやモジュールシステムの大胆な廃止
  • JavaScriptの解析ロジックをTypeScriptと共通化。

安定版のリリースは2026年の初夏ごろを予定しているとのことです。

まずはBeta版をプロジェクトに導入し、その圧倒的なスピードを体験してみてください。

ビルドの待ち時間がなくなることで、開発者の創造性はより一層高まるはずです。