
2026/03/07 5:21
TypeScript 6.0 リリース候補(RC)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Summary
TypeScript 6.0 Release Candidate(RC)が発表され、
npm install -D typescript@rc でインストールできます。これは現在の JavaScript ベースのコンパイラを使用した最後のリリースです。将来のリリース(TS 7.0+)では新しい Go ベースのエンジンに切り替わります。
New features
- ジェネリック JSX 内の関数式に対する型チェックが改善され、コンテキスト依存メソッドの推論も向上しました。
- インポートアサーションは
呼び出しにも適用されるようになり、Temporal API のタイプ(stage 3)が利用可能です。import() - DOM タイプが拡張されました:
とdom.iterable
がdom.asynciterable
だけで含まれます。"lib": ["dom"] - Map/WeakMap に新しい
/getOrInsert
メソッドが esnext ライブラリに追加されました。getOrInsertComputed - ES2025 がターゲット/ライブラリオプションとして追加され、
などのタイプやRegExp.escape
などの API が導入されました。Promise.try
Module resolution changes
- サブパスインポートは
で始めることができ、Node 20 の下ではよりシンプルなエイリアス(例:#/
)を使用できます。"#": "./dist/index.js"
は--moduleResolution bundler
とともに動作するようになり、以前は--module commonjs
またはesnext
が必要でした。preserve
Deprecations & removals
- 非推奨オプション:
、target: es5
、--downlevelIteration
、moduleResolution node
、amd/umd/systemjs
、およびbaseUrl
。esModuleInterop=false - 削除されたオプション:
、レガシーモジュール構文、およびoutFile
キーワード。asserts
Migration helpers
- フラグ
(デフォルトではオフ)は、TS 6.0 の型順序を TS 7.0 と揃え、移行時のノイズを減らします。--stableTypeOrdering
開発者はビルドパイプラインを RC を使用するように更新し、非推奨オプションへの調整と将来のコンパイラ切替に備えることで、新しい言語機能とライブラリサポートを活用できるようにしてください。
このバージョンはキーポイント一覧からすべての項目を保持し、非対応推論を避け、読み手に優しい明確な概要を提供します。
本文
TypeScript 6.0 リリース候補(RC)
本日、TypeScript 6.0 の Release Candidate (RC) を発表できることを嬉しく思います!
RC を使い始めるには次のコマンドを実行してください。
npm install -D typescript@rc
TypeScript 6.0 は特別なリリースです。現行の JavaScript コードベースに基づく最後のバージョンであり、TypeScript 5.9 と将来登場する ネイティブコード 型付き TypeScript 7.0 との橋渡し役を担います。
主なハイライト
| 機能 | 説明 |
|---|---|
| ジェネリック呼び出しの型チェック | ジェネリック JSX 式での推論が向上。 |
| import アサーション構文の非推奨化 | → 。 |
| DOM 型の更新 | 最新 Web 標準(Temporal API など)を反映。 |
| コンテキストに敏感な関数 | アロー式とメソッド構文が一貫して扱われるようになった。 |
で始まるサブパスインポート | Node.js 20+ の内部エイリアシングを簡素化。 |
| --moduleResolution bundler + --module commonjs | 多くのプロジェクト向け新しい移行経路。 |
| --stableTypeOrdering フラグ | TypeScript 6 と 7 の型 ID 順序を揃えてノイズを減らす。 |
| es2025 ターゲット/ライブラリ | 新しい組み込み型(例:)を追加。 |
| Temporal API サポート | 完全な型定義が利用可能。 |
Map の “upsert” メソッド (, ) | よく使われるパターンのヘルパー。 |
| DOM lib が iterable/asynciterable を含む | や を指定する必要がなくなる。 |
破壊的変更と非推奨項目
TypeScript 6.0 は 5.9 と完全に互換性がありますが、いくつかのオプションは非推奨化またはデフォルトで変更されています。
現在のリリースでは次を使用して非推奨警告を無視できます。
{ "compilerOptions": { "ignoreDeprecations": "6.0" } }
| 非推奨 / 変更 | 新しいデフォルト / ガイダンス |
|---|---|
| 非推奨。外部コンパイラまたは新しいターゲット(デフォルト es2025)を使用。 |
| もう適用されず、設定するとエラーになる。 |
| 非推奨。 または に移行。 |
, , , モジュール値 | 削除。ESM()またはバンドラーを使用。 |
| ルックアップルートとして非推奨;パスに直接プレフィックスを追加。 |
| 削除。モダン戦略へ移行。 |
, | 常に有効化される。インポートを適宜調整。 |
| すべてのコードがデフォルトで strict。必要なら明示的に を設定。 |
| 削除。外部バンドラーを使用。 |
レガシー 名前空間構文 | に置き換えられた。 |
キーワードのインポート | 非推奨。 を使用。 |
| サポート外; または を使用。 |
コマンドラインでファイルを指定した際に が存在する | エラー(TS5112)。 で回避可能。 |
よくある移行タスク
- 明示的な型設定
{ "compilerOptions": { "types": ["node", "jest"] } } - ルートディレクトリ – 推論されたルートに依存している場合は
を設定。 |"rootDir": "./src" - Strict モード –
はデフォルトでstrict
。必要なら明示的にtrue
に。 |false
詳細機能説明
コンテキストに敏感な関数
- アロー関数はコンテキストからパラメータを推論しますが、メソッド構文には暗黙の
が存在します。this - TypeScript 6.0 は実際に
を使用しないメソッドを 「コンテキストに敏感ではない」 とみなし、一貫した推論を可能にしています。this
callIt({ consume(y) { return y.toFixed(); }, produce(x: number) { return x * 2; } }); // ✅ これで動作します
サブパスインポート (#/
)
#/Node.js 20+ は
#/ で始まるインポートをサポートしています。TypeScript は次のように認識します。
{ "imports": { "#": "./dist/index.js", "#/*": "./dist/*" } }
これは新しい Node モジュール解決戦略(
nodenext または bundler)と整合性があります。
--stableTypeOrdering
このフラグを使うことで、型 ID の順序が TypeScript 7 と同じになり、宣言ファイル出力の安定化に寄与します。
tsc --stableTypeOrdering
新しい標準ライブラリサポート
| 機能 | 有効化方法 |
|---|---|
| es2025 ターゲット/ライブラリ | , |
| Temporal API | すでに利用可能。例: 等。 |
Map upsert メソッド (, ) | ライブラリに含まれる。 |
| RegExp.escape | を設定すると利用可能。 |
ドキュメントとさらに読むべき情報
- TypeScript 6.0 リリースノート (公式ドキュメントへのリンク)
- 非推奨オプションの移行ガイド
- ES2025 と Temporal API の仕様
RC を試してみてください。バグ報告や TypeScript 6.0、そして将来のネイティブプレビュー型付き TypeScript 7.0 に対するフィードバックをお待ちしています。
ハッキング愉快に!
– Daniel Rosenwasser & the TypeScript Team