本文へスキップ

TypeScript 7.1 Betaが新しいAPIとコンテンツマッパーを追加

TypeScript(タイプスクリプト)7.1 Betaは、6.0から移れなかったツールのためにプログラムから使えるAPIを復活させ、.vueファイル向けのコンテンツマッパーを追加しました。型チェックは7.0より最大1.9倍速くなります。

著者 Tech AI Wire Team

3 分で読めます

GitHub上のTypeScript 7.1 Betaのプレリリースページ。v7.1-betaのタグが付き、発表へのリンクと24個のダウンロードアセットが表示されています。

数字で見る

faster type-checking on mui-docs than TypeScript 7.0
1.9x
less memory on the same codebase
49.6%
the npm version to test
7.1.0-beta

Microsoftは2026年10月20日、TypeScript 7.1 Betaをリリースしました。主な役割は、プログラムから使えるAPIを復活させることです。これは、エディターのプラグインやリンターがコンパイラーとやり取りするための仕組みです。TypeScript 7.0にはこのAPIがなかったため、多くの人気ツールがTypeScript 6.0にとどまっていました。

APIが重要な理由

2026年7月8日にリリースされたTypeScript 7.0は、コンパイラーをプログラミング言語Goで書き直したものでした。Microsoftによると、TypeScript 6より「およそ10倍」高速です。しかし、他のツールが土台にしているAPIがないままリリースされました。

NT Compatibleによると、この欠落によって、Vueのエディター対応を支えるVolar、Svelteの言語サービス、typescript-eslint、Angularのテンプレートチェッカーといったツールが足止めされました。これらのツールの利用者は、TypeScript 6.0を使い続ける必要がありました。

Microsoftの発表によると、7.1のAPIはtypescript/sync、typescript/async、typescript/fs、typescript/astといったエントリーポイントに分かれています。変更の追跡にはスナップショットを使い、仮想ファイルシステムも使います。ツールが使い終わったプログラムは、明示的に閉じる必要があります。ただし、チームが6.0から離れるには、引き続き各ツールの個別のアップデートが必要です。

Vue、Svelte、Astro向けのコンテンツマッパー

多くのフレームワークは、独自のファイル形式にコードを保存しています。たとえば.vueファイルは、HTML、JavaScript、CSSを1つにまとめています。コンテンツマッパーは、そのようなファイルを仮想的なTypeScriptに変換するプラグインです。元の行に戻るためのマップも付きます。これにより、エディターはファイルの中で型をチェックし、定義へジャンプできます。

マッパーはtsconfig.jsonのcontentMappersに記載します。TypeScriptが実行するプログラムなので、--runExternalCodeフラグを付けたときだけ動きます。VS Codeでは、さらに信頼済みのワークスペースとjs/ts.contentMappers.enabled設定も必要です。発表の投稿には、Vue、Svelte、Astro、MDX、Ember、CSS Modules向けの初期のマッパーへのリンクがあります。

新しい言語機能

このベータ版では、新しいJavaScript標準の機能も追加されています。

機能内容
アンビエントモジュールでのインポート属性declare module "*" with { type: "css" }で、ファイル名ではなく属性によってインポートに型を付ける
ソースフェーズインポートimport sourceで、WebAssembly.Moduleなどのモジュールを実行せずに読み込む
es2026ターゲットとlibMath.sumPrecise()、Error.isError()、Array.fromAsync()、Map.prototype.getOrInsert()と、Uint8Arrayのbase64およびhexメソッドを追加
新しいesnextメソッドPromise.allKeyed、Iterator.zip、Iterator.prototype.chunksなど

既存のコードが動かなくなる可能性のある変更が2つあります。分配条件型(distributive conditional types)のチェックが厳しくなり、「Type 'B' does not satisfy the constraint 'A'.」のようなエラーが出ることがあります。更新されたDOMの型定義によって、結果が変わる可能性もあります。

7.0との速度とメモリの比較

Microsoftは、4つの型チェックスレッドを使い、出力ファイルなしで、実際の5つのコードベースを計測しました。どれもTypeScript 7.0より速く、使用メモリも少なくなりました。

コードベース7.0の時間7.1 Betaの時間メモリ削減
mui-docs22.2秒11.9秒49.6%
t3code-server26.5秒19.1秒24.6%
sentry19.6秒15.1秒20.8%
vscode21.6秒17.7秒17.2%
bluesky4.48秒3.89秒15.8%

npm install -D typescript@betaでインストールできます。GitHubのリリースには、npmのバージョンが7.1.0-betaと記載されています。Microsoftは「約1か月後」にリリース候補版を、その後まもなく正式版を出す予定です。NT Compatibleは、予定日を11月10日と11月24日としています。Bunは今月、別の道を選びました。1.4.3リリースで、独自のTypeScript型チェッカーであるbun checkを追加しました。

開発者にとっての意味

多くのチームにとって、7.1はTypeScript 6からの移行を可能にするリリースです。

  • ツールの提供元を注視してください。 Volar、Svelteの言語サービス、typescript-eslint、Angularのせいで6.0にとどまっているなら、それぞれのissueトラッカーで7.1 APIへの対応状況を追ってください。あなたのアップグレードは、それらのツールのアップグレード次第です。
  • 今すぐブランチでベータ版を試してください。 typescript@betaをインストールして、プロジェクトの型チェックを実行してください。正式リリースの前に、厳しくなった条件型のルールによる新しいエラーがないか確認してください。
  • --runExternalCodeは、依存関係を決めるときと同じように扱ってください。 コンテンツマッパーは、型チェック中にコードを実行します。信頼できるマッパーパッケージだけで有効にし、CIではこのフラグを確認してください。
  • 自分の環境での高速化を測ってください。 1.2倍から1.9倍という向上は、5つのコードベースから得られた数字です。自分のプロジェクトで、tsc --noEmitの時間を移行の前後で測ってください。

出典

  1. Announcing TypeScript 7.1 Beta - Microsoft DevBlogs
  2. TypeScript 7.1 Beta - GitHub
  3. TypeScript 7.1 Beta Released: New API Unblocks Vue, Svelte, and Angular Tooling - NT Compatible

関連記事

Jarred Sumnerによる2026年10月22日付のBunブログ記事「Bun v1.4.4」。インストールとアップグレードのコマンドが見えます。
開発ツール

Bun 1.4.4がbun fmtを追加、Prettier互換のフォーマッター

2026年10月22日公開のBun(バン)1.4.4は、Prettier(プリティア)互換のフォーマッターbun fmtを追加しました。BunによるとPrettier自身のリポジトリのチェックはPrettierより286倍速いとしています。

TypeScriptプロジェクトに対してtype-awareモードで動くoxlintを表示したターミナルウィンドウ。経過した実行時間が見える。
開発ツール

tsgolint v7、Goで書かれたtype-aware lintingをリリース

tsgolint v7は、typescript-eslintのtype-awareルール(型情報を使うリンティング)をGoで実行します。61ルールのうち59を実装し、プロジェクト自身が掲げる二つの速度の主張は一致しません。