AIが生む「利便性ループ」でTypeScriptがGitHubコントリビューター数首位に

概要 GitHub Octoverse 2025レポートは、AIコーディング支援ツールが開発者のプログラミング言語選択に直接影響を与えていることを示すデータを公開した。TypeScriptは前年比66%という驚異的な成長率を記録し、月間コントリビューター数が260万人を超えてPythonおよびJavaScriptを抜き、GitHub上で最も使用される言語となった。これは10年以上ぶりとなる大規模な言語ランキング変動であり、AIツール普及の時期と見事に一致している。 「利便性ループ」という新概念 GitHubのデベロッパーアドボケートであるAndrea Griffithsは、この現象を「Convenience Loop(利便性ループ)」という概念で説明している。AIがある技術を使いやすくすると開発者がその技術に集中し、より多くの学習データが生成されてAIはその技術への対応精度をさらに高める、という正のフィードバックループが形成される。TypeScriptの場合、静的型付けがAIコード補完・生成の精度を高める構造的な優位性を持っており、このループが特に強く機能している。 TypeScriptが選ばれる技術的な理由 TypeScript急成長の背景には、Next.jsやAstroなどの主要フレームワークがTypeScriptをデフォルト採用している点もあるが、より根本的な要因としてAIとの親和性が挙げられる。静的型情報はAIアシスタントにとって理想的なコンテキストを提供し、コード補完や生成の正確性を高める。型情報が豊富でドキュメントが充実した言語ほど、AIにとって「扱いやすい言語」となり、開発者が意識しないままAIの利便性を基準に言語を選択する傾向が強まっている。 言語エコシステムの競争原理が変わる 従来、プログラミング言語の選択基準は技術的メリットやコミュニティ規模が主軸だったが、今後は「AIがどの程度その言語をサポートしているか」が新たな選択軸として加わることになる。AIツールの高度化・普及が進むにつれ、AIと相性の良い言語設計を持つTypeScriptのような言語がさらに優位性を拡大していく可能性がある。この構造的変化は言語エコシステムの競争原理そのものを書き換えており、言語設計者やフレームワーク開発者にとっても「AIへの対応しやすさ」が重要な設計指針となってきている。

April 1, 2026

GraalVM Native Build Tools 1.0.0 GA、EclipseLink 5.0.0など、Javaエコシステムで相次ぐ主要リリース

概要 2026年3月最終週、Javaエコシステムにおいて複数の重要なリリースが相次いだ。最大のトピックはGraalVM Native Build Tools 1.0.0のGA(一般提供)達成であり、依存ライブラリのアップグレードと、最新GraalVM JDK上でGradleプラグインのテストが通らなくなる重大な問題の修正が盛り込まれた。Jakarta EE 11対応のEclipseLink 5.0.0 GAも同時期に登場し、JakartaエコシステムとJava標準仕様の進化が着実に進んでいることを示している。 JDK 27については早期アクセスビルド15が公開され、前ビルドからのバグ修正と改善が加えられた。また、Jakarta EE 11実装の参照実装であるGlassFish 8.0.1が初のメンテナンスリリースとして提供され、Java Native Accessライブラリの専用モジュールへの移動やデプロイパフォーマンスの最適化などが行われた。 主要リリースの詳細 GraalVM Native Build Tools 1.0.0 GAはメジャーバージョン1.0として初めてGAに到達したリリースで、GradleプラグインのJavaApplicationFunctionalTestクラスが最新GraalVM JDKで動作しなくなっていた問題(削除された機能に起因)が解消された。ネイティブコンパイルワークフローの安定性が高まり、本番利用に適した品質水準に達したことを意味する。 EclipseLink 5.0.0 GAはJakarta Persistence 3.2仕様をサポートし、Jakarta EE 11のエコシステムに正式対応した。JPQL強化やクエリ処理の改善、Oracle・MySQL・DB2・PostgreSQLを含む各種データベースプラットフォームの改善が含まれる。 Springエコシステムでは3つのマイルストーンリリースが提供された。Spring Boot 4.1.0 M4はgRPCサーバー・クライアント観測設定の一貫性を確保し、Micrometer Metricsのカスタムコンベンション対応を追加。Spring Modulith 2.1.0 M4はJobRunrイベント外部化サポートを導入。Spring AI 2.0.0 M4はGemini 3モデル向けのカスタムツール設定とネイティブ構造化出力の動的無効化をサポートした。 クラウドネイティブとマイクロサービス関連 Open Liberty 26.0.0.3 GAでは、UserRegistryインターフェースに属性ベースのユーザー取得を行う新メソッドgetUsersByAttribute()が追加され、起動最適化のために最新Jandexインデックス形式がサポートされた。Quarkus 3.34.0ではObjectLoaderインターフェースが内部専用として非推奨化され、PathTreeインターフェースにリソース名取得メソッドgetResourceNames()が新設された。 分散キャッシュのInfinispanは16.2.0の最初の開発版を公開し、Redisシリアル化プロトコルでBITFIELD・SUBSCRIBE・PUNSUBSCRIBE・DIGESTコマンドを拡張、REST APIへのOpenAPI v3仕様実装も行われた。 今後の見通し 今回のリリース群はネイティブコンパイル、クラウドネイティブ対応、Jakarta EE 11準拠という3つの軸でJavaプラットフォームが積極的に進化していることを示している。GraalVM Native Build Tools 1.0.0のGA到達は、Javaアプリケーションのネイティブイメージ化がより安定した開発体験を提供できる段階に入ったことを意味する。Spring BootやQuarkus、Open Libertyが同週にリリースを揃えたことは、Javaエコシステム全体が連動して前進している様子を映し出している。

March 31, 2026

VercelのGenerative UIフレームワーク「json-render」—AIがZodスキーマからUIを自動生成

概要 Vercelは2026年1月、AIがユーザーインターフェースを動的に生成するためのオープンソースフレームワーク「json-render」をApache 2.0ライセンスで公開した。同プロジェクトはGitHub上で13,000件超のスターを獲得し、200以上のリリースが行われるなど、急速にコミュニティの注目を集めている。 json-renderの仕組みは3ステップで構成される。まず開発者がZodスキーマを用いて許可するUIコンポーネントとアクションを「コンポーネントカタログ」として定義する。次にLLMがそのカタログに基づいたJSON仕様を生成し、最後にフレームワークがストリーミングレスポンスに応じてUIを段階的にレンダリングする。AIが生成できるのはあらかじめ承認されたコンポーネントに限定されるため、悪意のあるReactコードが注入されるリスクを抑えるセキュリティ上のメリットもある。 技術的な詳細 json-renderはReact、Vue、Svelte、Solid、React Nativeといった主要なフロントエンドフレームワークに加え、PDFレンダリング、HTMLメール、動画生成(Remotion経由)、OG画像レンダリング、3Dシーン(React Three Fiber)など幅広い出力形式をサポートする。すぐに使い始められるよう、36種類のshadcn/uiコンポーネントがプリセットとして同梱されている。技術スタックはTypeScriptで実装されたpnpmモノレポ構成で、npmの@json-renderスコープ下に各パッケージが配布されている。 コミュニティの反応と競合 開発者からはテキストからダッシュボードを生成するアプリケーションへの応用事例が報告されており、「構造化出力APIより堅牢」という評価も見られる。一方で、OpenAPIやJSONスキーマといった既存標準との差別化を疑問視する声もあるが、json-renderがデータモデリングではなくUIコンポジションに特化している点が反論として挙げられている。 競合としては、Googleが2025年末に類似のプロジェクト「A2UI」を公開している。A2UIがエージェント間の相互運用プロトコルを目指すのに対し、json-renderはアプリケーション固有のUIツーリングとして位置づけられており、両者は異なるユースケースを対象にしていると見られる。

March 31, 2026

godot-rust v0.5リリース — 型付き辞書・3段階セーフガード・WebAssembly改善など70以上の機能強化

概要 GodotゲームエンジンのRustバインディングである「godot-rust」が2026年3月27日、v0.5を正式にリリースした。v0.4から約6ヶ月ぶりのメジャーアップデートとなり、型システムの強化、パフォーマンス最適化、エンジン統合の改善など70以上の変更が含まれている。Rust edition 2024およびGodot 4.6への対応も行われた。 セーフガードレベルによるパフォーマンス最適化 v0.5では新たに3段階のセーフガードレベルが導入された。「Strict」はデバッグビルドのデフォルトで、開発中のバグ検出を強化する。「Balanced」はリリースビルドのデフォルトで、安全性を保ちつつ高速な動作を実現する。「Disengaged」は安全チェックを完全に省略し、最大限の速度を追求するモードで、特殊な高パフォーマンスシナリオ向けとされている。 さらに、Callable::from_fn()コンストラクタの高速化や、Gd<T>の内部セルからMutexロックを除去する最適化も実施された。スレッディングモデルにより、experimental-threadsを使用しない場合はメインスレッドからのみアクセスするため、安全性を維持したままMutexを不要にできたという。 型付き辞書と型システムの強化 型システム面では、辞書がDictionary<K, V>というジェネリック型パラメータをサポートするようになった。新しい式マクロとしてdict!とidict!が追加され、要素アクセスでも強い型付けが維持される。また、GDScriptにおける暗黙的なアップキャスト問題に対処するため、AnyArrayとAnyDictionaryという共変コレクション型が新設された。これらはすべての要素型に対して安全な操作のみを公開し、Deref変換により&Array<T>を&AnyArrayとして使用できる。 Godot 4.6のnullabilityアノテーションにも対応し、非nullパラメータにはOption<Gd<T>>ではなくGd<T>が使用されるようになった。エンジンおよびカスタムenumがGodotConvertを実装し、#[func]、#[signal]、#[var]、#[export]、コレクション全体で統一的に利用可能となっている。GStringとStringNameは&strとの直接比較がアロケーションなしでサポートされた。 クラス登録APIとエディタ統合の改善 #[func]で#[opt(default = ...)]属性によるオプショナルパラメータのデフォルト値指定が可能になった。エディタ向けには#[export_tool_button]属性が追加され、PhantomVar<Callable>と組み合わせることでインスペクタ上にクリック可能なボタンを配置できる。 プロパティシステムでは、#[var]フィールドのRustゲッター・セッターの自動生成が廃止され、#[var(pub)]によるオプトイン方式に変更された。#[var(rename = ...)]によるプロパティ名のリネームも可能だ。ユーザーシングルトンの登録が#[class(singleton)]属性で可能となり、RustとGDScriptの両方からグローバルにアクセスできる。Godotのオートロードを簡便に取得・キャッシュするget_autoload_by_name()関数も追加された。 WebAssemblyとクロスコンパイルの進展 WebAssembly対応が大きく前進した。Wasm向けのプリビルトアーティファクトが提供されるようになり、従来必要だったapi-customフィーチャー、bindgen、LLVMツールチェーンが不要になった。Webエクスポートは現在CIでテストされており、セットアップを簡略化するCLIツールも計画されている。また、godot-bindingsのプラットフォーム選択がホストOSではなくターゲットOSに基づいて行われるよう修正され、クロスコンパイルが正しく機能するようになった。Rust GDExtensionクレートをrlibとしてコンパイルし依存関係として利用することで、モジュラーなエクステンション構成も可能になっている。 今後の展望 今後はスレッドセーフティの改善やGDExtensionエコシステムの安定化が重点分野とされている。v0.5には破壊的変更も含まれており、旧来のNode::duplicate()やResource::duplicate()メソッドは非推奨となりv0.6で削除予定。移行ガイドが提供されている。

March 30, 2026

C++26が正式確定、コントラクト・静的リフレクション・std::executionなど大規模な機能追加

概要 ISO C++標準化委員会(WG21)は、2026年3月23日から28日にかけてイギリス・ロンドン近郊のクロイドンで開催された会議において、C++26標準を正式に確定した。C++23以来となるこのメジャー改訂は、言語の安全性、表現力、並行処理能力を大幅に強化する広範な機能群を含んでおり、C++の歴史の中でも特に重要なリリースの一つとなる。2025年6月のソフィア(ブルガリア)会議でフィーチャーフリーズが完了し、2025年11月のコナ(ハワイ)会議で国際コメントの70%が解決された状態でロンドン会議に臨み、最終的な標準化作業が完了した。なお、今回の会議からGuy Davidsonが新たなWG21コンビナーを務めており、23年間その役割を担ったHerb Sutterからの世代交代も実現している。 主要な新機能 C++26で導入される主要機能は多岐にわたる。最も注目されているのがコントラクト(P2900)で、関数の事前条件(precondition)、事後条件(postcondition)、アサーション(contract_assert)を言語レベルで記述できるようになる。これにより、APIの契約を型システムと並ぶ形で明示的に表現でき、ソフトウェアの安全性と信頼性が向上する。コナ会議ではバグ修正とハードニング改善が採用され、「このアサーションは必ず実行時に検証されなければならない」と指定するメカニズムの設計も進められた。 静的リフレクションは、コンパイル時にプログラムの型情報や構造を検査・操作できる機能で、メタプログラミングの可能性を大きく広げる。meta::info型のハッシュサポート(P3816)や構造型判定(P3856)など、リフレクション関連の整備も進められた。 std::execution(P2300)は、Sender/Receiverモデルに基づく非同期実行フレームワークで、構造化された並行処理を標準ライブラリレベルで実現する。スケジューラアフィニティ(P3941)やSenderアルゴリズムのカスタマイズ修正(P3826)なども含まれている。 安全性とライブラリの強化 C++26は安全性を重視した設計が際立つ。エラネアスビヘイビア(Erroneous Behavior) の概念が導入され、未初期化変数へのアクセスなど従来は未定義動作だった操作が「定義されているが誤り」として扱われるようになった。コナ会議での改良により、影響範囲が特定の未初期化値のみに限定され、プログラム全体に波及しない設計となっている。また、std::array、std::vector、std::spanなど主要コンテナの標準ライブラリハードニング(P3471)により、境界チェックが強化された。 標準ライブラリには多数の新ヘッダと型が追加される。固定容量の動的配列std::inplace_vector、メモリ効率の高いstd::hiveコンテナ、BLAS準拠の線形代数インターフェース<linalg>、データ並列型std::simd、ロックフリーメモリ回収のためのハザードポインタとRCU、間接所有権ラッパーstd::indirectと型消去ユーティリティstd::polymorphicなどが含まれる。constexprの適用範囲も大幅に拡大され、constexprでの例外処理(P3068)が可能になった。 言語機能の改善と今後の展望 言語レベルでは、パックインデクシング(T...[N])による可変長テンプレート引数への直接アクセス、#embedプリプロセッサディレクティブによるバイナリファイルの直接埋め込み、= delete("理由")による削除理由の明示、構造化束縛の大幅な拡張(条件式での使用、constexpr対応、パック導入)など、開発者の生産性を向上させる多くの改善が盛り込まれた。一方、ショーストッパーとなるバグが発見されたトリビアルリロケータビリティはC++26から削除されており、将来の標準での再導入が検討される見込みである。 C++26の正式なISO標準としての発行は今後のISO手続きを経て行われる。主要コンパイラ(GCC、Clang、MSVC)での実装は段階的に進められており、一部の機能はすでにGCC 15やClang 19以降で利用可能となっている。コントラクトやstd::executionなどの大型機能の完全な実装にはさらに時間を要する見通しだが、C++の安全性・表現力・並行処理能力を次のレベルへと引き上げる重要なマイルストーンとなった。

March 29, 2026

IntelliJ IDEA 2026.1リリース — AIエージェント統合、Java 26対応、C/C++サポートなど大型アップデート

AIエージェント統合の本格化 JetBrainsは2026年3月25日、IntelliJ IDEA 2026.1を正式リリースした。今回のリリースで最も注目されるのは、AIエージェントとの統合が大幅に強化された点だ。新たに導入されたACP(Agent Communication Protocol)レジストリにより、ユーザーはワンクリックでAIエージェントをブラウズ・インストールできるようになった。Codex、Cursor、およびACP互換エージェントへの組み込みサポートが追加され、IDE内でエージェントにタスクを委任しながら開発を進めるワークフローが実現している。Gitワークツリーを活用した並列ブランチ作業により、エージェントがバックグラウンドで作業する間も開発者は自身の作業を続けることが可能だ。さらに、エージェントがデータベースに直接アクセスしてクエリや変更を行える機能も追加されている。 IDE側のAI支援機能も強化され、クォータ不要のネクストエディットサジェスチョンがファイル全体に変更を伝播するようになったほか、拡張コマンド補完にAIアクションが統合された。なお、AI関連機能の利用可能範囲は地域によって異なる。 言語サポートの拡充 Java 26のday-oneサポートが提供され、プレビュー機能を含む最新のJava機能にリリース初日から対応する。同様に、Kotlin 2.3.20についてもday-oneサポートが追加され、実験的機能への対応も含まれている。 特筆すべき変更として、IntelliJ IDEAにC/C++のファーストクラスコーディング支援が新たに追加された。これにより、マルチ言語プロジェクトにおいてC/C++コードの編集・解析がIDE内でシームレスに行えるようになっている。また、JavaScriptサポートがUltimateサブスクリプション不要で利用可能になった点も、幅広い開発者にとって歓迎される変更だ。 フレームワーク対応とパフォーマンス改善 Spring Frameworkについては、実行時インサイト機能が導入され、実行を一時停止することなく、注入されたBean、エンドポイントセキュリティ、プロパティ値をリアルタイムで検査できるようになった。Kotlin固有のJPA対応も強化され、Jakarta Persistenceエンティティにおけるkotlin特有の落とし穴を検出・修正する機能が追加されている。 パフォーマンス面では、1,000件以上のバグ修正とUIフリーズ対策が実施され、安定性が大きく向上している。大規模TypeScriptプロジェクトのパフォーマンス改善、ネイティブDev Containerワークフローへの対応、拡張コマンド補完でのポストフィックステンプレートや設定ファイルサポートなど、開発者の生産性を高める多数の改善が含まれている。

March 29, 2026

Ruby 3.3.11・3.2.11リリース、zlibバッファオーバーフロー脆弱性CVE-2026-27820を修正

概要 Rubyコアチームは2026年3月26日および27日にRuby 3.3.11とRuby 3.2.11をそれぞれリリースした。いずれもバンドルされているzlibジェムに存在するバッファオーバーフロー脆弱性CVE-2026-27820を修正するセキュリティアップデートである。この脆弱性はGzipReaderに関連するもので、メモリ破壊(memory corruption)につながる可能性があり、該当バージョンのユーザーには速やかなアップデートが推奨される。Ruby 3.3.11にはバグフィックスも含まれている。 Ruby 3.3系のサポート移行 Ruby 3.3.11は3.3系の最後の通常メンテナンスリリースとなる。今後1年間(2027年3月まで)はセキュリティパッチおよびクリティカルなビルド問題の修正のみがバックポートされる制限付きサポートフェーズに移行し、2027年3月をもって公式サポートが終了する。 Ruby 3.2系のサポート終了 Ruby 3.2.11は3.2系の最終リリースであり、今後セキュリティ修正を含むいかなるアップデートも提供されない。Ruby 3.2は2022年12月の初回リリースから3年以上にわたりサポートが継続されてきたが、今回のリリースをもって正式にサポートが終了した。 今後の対応 Rubyコアチームは両リリースのアナウンスにおいて、ユーザーに対しRuby 3.4または4.0への移行計画を早期に開始するよう呼びかけている。特にRuby 3.2系を利用しているプロジェクトは、セキュリティサポートが完全に終了したため、早急なアップグレードが必要となる。

March 29, 2026

Rust 1.94.1がリリース、WASM・Windows・Clippyの3つのリグレッションとCargo依存クレートのCVEを修正

リリースの概要 Rustプロジェクトは2026年3月26日、Rust 1.94.1をリリースした。これはRust 1.94.0で発生した3つのリグレッションを修正するメンテナンスリリースであり、加えてCargoが依存するtarクレートに発見されたセキュリティ脆弱性(CVE-2026-33055およびCVE-2026-33056)への対応も含まれている。1.94.0ユーザーには速やかなアップデートが推奨されており、rustup update stableコマンドで更新できる。 修正された3つのリグレッション 1つ目は、WebAssembly(wasm32-wasip1-threads)環境におけるstd::thread::spawnの不具合修正だ。1.94.0ではWASMスレッド対応に問題が発生しており、PR #153634によってスレッド生成機能が正常に動作するよう復旧された。 2つ目は、Windows API互換性に関する問題である。std::os::windows::fs::OpenOptionsExtトレイトに追加された新しい不安定メソッドが、デフォルト実装を持たないためトレイトの後方互換性を破壊していた。PR #153491によりこれらの不安定メソッドの追加がリバートされた。 3つ目は、Clippyのmatch_same_armsリントにおける内部コンパイラエラー(ICE)の修正だ。特定のパターンマッチ構文でClippyがクラッシュする問題がPR #16685で解消された。 セキュリティ修正とその他の対応 セキュリティ面では、Cargoが使用するtarクレートがバージョン0.4.45に更新され、CVE-2026-33055およびCVE-2026-33056に対応した。ただし、crates.ioのユーザーはこれらの脆弱性の影響を受けないとされている。このほか、FreeBSD環境における証明書関連の問題に対応するため、curl-sysがバージョン0.4.83にダウングレードされる修正(PR #16787)も含まれている。

March 29, 2026

Java 26正式リリース、HTTP/3対応やAOTキャッシュの全GC対応など10件のJEPを搭載

概要 Oracleは2026年3月17日、Java 26(JDK 26)を正式リリースした。JDK 25に続く非LTS(Long-Term Support)リリースとして、10件のJEP(Java Enhancement Proposal)が含まれている。そのうち5件はプレビューまたはインキュベーター段階の機能であり、残り5件が新規または確定済みの変更となる。近年のJavaリリースの中では比較的コンパクトなリリースだが、HTTP/3対応やGCの改善など実用的な機能強化が盛り込まれた。 搭載された10件のJEP 言語機能 JEP 500: Prepare to Make Final Mean Final — finalキーワードの意味をより厳密にするための準備。ディープリフレクションによるfinalフィールドの変更に対して警告が発せられるようになり、将来的には例外がスローされる予定。 JEP 525: Structured Concurrency(第6プレビュー) — タスク階層とリソース管理を通じて、より明確で保守しやすい並行処理コードを記述できる構造化された並行性パターンの改良を継続。 JEP 530: Primitive Types in Patterns, instanceof, and switch(第4プレビュー) — パターンマッチングをプリミティブ型に拡張し、条件分岐をより表現力豊かに記述可能にする。無条件の正確性の定義強化やswitch構文でのドミナンスチェックの厳格化が変更点。 ライブラリ改善 JEP 517: HTTP/3 for the HTTP Client API — 標準のHTTP Client APIにHTTP/3プロトコルのサポートを追加。最新のプロトコル標準を利用可能にする。 JEP 524: PEM Encodings of Cryptographic Objects(第2プレビュー) — 暗号鍵、証明書、証明書失効リストをPEM形式でエンコードするAPIを提供。PEMRecordクラスがPEMにリネームされ、KeyPairやPKCS8EncodedKeySpecクラスの暗号化・復号化サポートが強化された。 JEP 526: Lazy Constants(第2プレビュー) — 最大1回だけ初期化される不変の値ホルダーである「計算定数」を導入。finalフィールドのパフォーマンスと安全性の利点を持ちつつ、初期化タイミングの柔軟性を提供する。前回の「Stable Values」から名称が変更された。 パフォーマンス向上 JEP 516: Ahead-of-Time Object Caching with Any GC — JDK 24で提供されたJEP 483(Ahead-of-Time Class Loading & Linking)を拡張し、低レイテンシのZGCを含むすべてのガベージコレクタで起動時間とウォームアップ時間を改善。Project Leydenの一環。 JEP 522: G1 GC: Improve Throughput by Reducing Synchronization — G1ガベージコレクタの同期オーバーヘッドを削減し、スループットを向上させる最適化。 その他 JEP 529: Vector API(第11インキュベーター) — ベクトル計算を最適なCPU命令にコンパイルするVector APIの11回目のインキュベーション。Project Valhallaの機能が利用可能になった時点でプレビューに移行予定。 JEP 504: Remove the Applet API — JDK 9およびJDK 17で非推奨化されていたApplet APIを完全に削除。ブラウザアプレットの時代の終焉を反映した変更。 今後の展望 次期リリースのJDK 27は2026年9月のGAリリースが予定されている。現時点でターゲットされているJEPとして、JEP 527(Post-Quantum Hybrid Key Exchange for TLS 1.3)がある。また、Lazy Constantsの第3プレビューやProject Valhallaに基づくValue Classes and Objects(プレビュー)なども候補として挙がっている。BellSoftもLibericaJDK 26をリリースしており、OpenJDKからの2,665件を含む合計2,825件の修正が含まれるなど、Javaエコシステム全体がJDK 26への対応を進めている。

March 28, 2026

TypeScript 6.0正式リリース、JavaScript実装最後のメジャー版でGo製7.0への橋渡しに

概要 Microsoftは2026年3月23日、TypeScript 6.0を正式にリリースした。本バージョンは、現行のJavaScriptで書かれたコンパイラによる最後のメジャーリリースであり、Go言語で全面的に再実装される次期TypeScript 7.0(Project Corsa)への「橋渡し」となる重要なリリースと位置付けられている。プリンシパルプロダクトマネージャーのDaniel Rosenwasser氏は「TypeScript 7.0は完成に極めて近い状態にある」と述べ、6.0を導入したプロジェクトにはネイティブプレビュー版の7.0も試すよう呼びかけている。 主な新機能と改善点 TypeScript 6.0では、ES2025ターゲットのサポートが追加され、RegExp.escape()、Temporal API(Stage 4到達)、Promise.try、Iteratorメソッド、Setメソッドなどの型定義が利用可能になった。特にTemporal APIは、JavaScriptにおける日付・時刻処理の長年の課題を解決するものとして注目されており、Temporal.Now.instant()などの操作がTypeScriptの型安全性のもとで利用できるようになる。ブラウザ側ではFirefox 139以降、Chrome 144以降で対応している。 型推論の面では、thisを使用しない関数における文脈依存性が緩和され、プロパティの宣言順序に関係なく型パラメータの推論が改善された。また、ジェネリックJSX式における関数式の型チェックも強化されている。モジュール解決では、Node.js 20以降で利用可能な#/プレフィックスによるサブパスインポートのサポートや、--moduleResolution bundlerと--module commonjsの組み合わせが可能になった。DOM型ライブラリでは、dom.iterableとdom.asynciterableの内容がdomに統合され、設定がシンプルになった。 デフォルト設定の大幅な変更 6.0ではデフォルト設定が大きく変更されている。strictがデフォルトでtrueに、moduleがesnextに、targetがes2025にそれぞれ変更された。また、typesがデフォルトで空配列となり@typesパッケージの自動検出が行われなくなったため、"types": ["node"]などの明示的な指定が必要になる。rootDirもデフォルトで.(tsconfig.jsonのあるディレクトリ)に固定され、推論されなくなった。 非推奨機能とTypeScript 7.0への移行 多くのレガシーオプションが非推奨または削除された。target: es5、--moduleResolution node(nodenextやbundlerへの移行を推奨)、--baseUrlなどは非推奨となり、一時的に"ignoreDeprecations": "6.0"で抑制できるが、7.0では完全に削除される予定だ。一方、--module amd/umd/systemjsや--outFileは6.0で既に削除されている。また、import assertion構文(assert)の非推奨がimport()呼び出しにも拡大され、with構文への移行が求められる。 7.0への移行を支援する--stableTypeOrderingフラグも導入された。6.0では型IDが出現順に割り当てられるが、7.0では決定論的なコンテンツベースのソートが採用されるため、このフラグで事前に挙動を揃えることができる。ただし型チェックが最大25%遅くなるため、あくまで診断用途であり、本番利用は推奨されていない。TypeScript 7.0のネイティブプレビューはVisual Studio Code拡張およびnpmパッケージ(@typescript/native-preview)として既に利用可能で、ネイティブコード速度と共有メモリマルチスレッドによる大幅なパフォーマンス向上が期待されている。

March 28, 2026