Node.js 26 の注目点 - Temporal 既定有効と「ビルドなしTS実行」の現在地

Node.js 26 の注目点 - Temporal 既定有効と「ビルドなしTS実行」の現在地

作成日:
読了:約9分
更新日:

当サイトは Amazon.co.jp を宣伝しリンクすることで紹介料を得る手段を提供する、Amazonアソシエイト・プログラムの参加者です。価格・在庫はリンク先の最新情報をご確認ください。

JavaScript ランタイムの「新標準を素直に取り込む」流れは、Deno だけのものではありません。Deno 2.7 が Temporal API を安定化したことを以前書きましたが、Node.js 26 では Temporal がデフォルトで有効になりました。つまり Temporal は、もう「どこか一つのランタイムの目玉機能」ではなく、JavaScript の新常識になりつつあります。

2026年5月5日にリリースされた Node.js 26 は、ほかにも「ビルドなしの TypeScript 実行」の安定化など、実務に効く更新が揃った版です。この記事では注目点を整理します。

Node.js 26 の注目点(早見表)

項目内容
Temporal APIデフォルト有効に。フラグ不要で新しい日時 API が使える
TypeScript 実行type stripping(v25.2.0 / v24.12.0 で安定版)が既定で有効。26 で --experimental-transform-types が削除され、「消せる型」だけの実行に一本化
V814.6.202.33(Chromium 146)。Map.prototype.getOrInsert()、Iterator.concat() など
Undici8.0.2 へ。fetch の土台が更新
削除ServerResponse.prototype.writeHeader()、レガシー _stream_* モジュール、--experimental-transform-types フラグ
ステータス2026年5月時点は Current。2026年10月に LTS 入り予定

Temporal API がデフォルト有効に

最大の注目点が Temporal API のデフォルト有効化です。これまで実験的な位置づけでしたが、Node.js 26 ではフラグなしで使えます。

Temporal は、JavaScript の長年の弱点だった日時操作を刷新する新しい標準 API です。従来の Date は、ミュータブル・タイムゾーン扱いが貧弱・月が0始まり、といった落とし穴だらけで、date-fns や dayjs で補うのが常でした。Temporal はイミュータブルで、タイムゾーンを第一級に扱い、日付・時刻・期間を明確な型で表現します。

NOTE

Temporal は Node 固有の機能ではなく、ECMAScript の標準提案です。Deno 2.7 や Chrome でも実装が進んでおり、Node.js 26 はそれをランタイムでデフォルト提供したものです。標準なので、覚えた知識はブラウザでも他ランタイムでも活きます。「Temporal はもう新常識」と捉えてよい段階です。

「ビルドなし TypeScript 実行」の現在地

Node.js は近年、.ts ファイルをそのまま実行する機能を進めてきました。この type stripping(型の除去)は v23.6.0 / v22.18.0 で既定有効になり、v25.2.0 / v24.12.0 で安定版(Stability: 2)になっています。Node.js 26 はその安定版をそのまま引き継いでいます。仕組みは「TypeScript の型注釈を空白に置き換えて、純粋な JavaScript として実行する」というものです。tsconfig.json もソースマップも不要な、軽量な方式です。

ただし、ここには重要な線引きがあります。type stripping が扱えるのは「消せる型(erasable syntax)」だけです。コード生成を伴う構文はサポートされません。

type stripping が扱えない例(実行時エラー)
namespace A {
  export let x = 1; // ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX
}

具体的に、次の構文は type stripping では動きません。

  • enum 宣言
  • ランタイムコードを含む namespace(型だけの namespace は可)
  • パラメータプロパティ(コンストラクタ引数での private x 等)
  • デコレータ
  • インポートエイリアス

しかも Node.js 26 では、これらを変換していた --experimental-transform-types フラグが削除されました。つまり Node 本体の TypeScript 実行は、いよいよ「型を消すだけ」に一本化されたわけです。

WARNING

「Node がネイティブで TS を動かせるなら、もう tsx や ts-node は要らない」と早合点しないでください。enum・デコレータ・パラメータプロパティ・namespace を使うコードや、tsconfig.json の paths・古い JS ターゲットが必要なプロジェクトは、引き続き tsx / ts-node / tsc が必要です。Node の type stripping は「消せる型だけの軽量実行」と割り切るのが正解です。型チェック自体も行わない(あくまで実行)点にも注意。

設定スクリプトや小さな CLI など「消せる型」で書けるものは Node 単体で軽く回し、フル機能が要る本体コードは従来ツール、という使い分けが現実解です。ネイティブ言語で TS ツールチェーンを作り直す流れは TypeScript 7 の Go 移植とも地続きです。

その他の更新

V8 14.6(新しい言語機能)

V8 が 14.6.202.33(Chromium 146)に更新され、地味に効く新メソッドが入りました。

  • Map.prototype.getOrInsert() / getOrInsertComputed(): キーが無ければ挿入して返す。if (!map.has(k)) map.set(k, ...) の定番パターンが1行に
  • Iterator.concat(): イテレータの連結

Undici 8 と fetch

HTTP クライアントの Undici が 8.0.2 に更新されました。グローバルな fetch の実装を支える部分なので、HTTP まわりの挙動・性能に効きます。

削除されたもの(移行の関門)

メジャー更新なので破壊的変更があります。移行前に確認してください。

  • ServerResponse.prototype.writeHeader(): 削除。writeHead() を使う
  • レガシー stream モジュール: _stream_wrap / _stream_readable / _stream_writable / _stream_duplex / _stream_transform / _stream_passthrough が削除
  • --experimental-transform-types: 削除(前述)
  • ビルド要件: GCC 13.2 へ、Python 3.9 サポート終了、Windows SDK 11 へ

NOTE

追記(2026-10-07): 公開時は「Node.js 26 で type stripping が安定化し、実験フラグが外れた」と書いていましたが、Node.js 公式ドキュメントの変更履歴では安定版になったのは v25.2.0 / v24.12.0 で、v26.0.0 での変更は --experimental-transform-types の削除です。該当箇所を修正しました。なお Node.js 26 の LTS 入りは公式スケジュールで 2026-10-28 の予定です(nodejs/Release)。

まとめ

  • Node.js 26(2026年5月5日)は Temporal がデフォルト有効。Deno に続き Node も標準提供で、Temporal は実質「JavaScript の新常識」に
  • 安定版の type stripping で .ts を素で実行できるが、扱えるのは「消せる型」だけ。--experimental-transform-types は削除された
  • enum・デコレータ・namespace・パラメータプロパティや tsconfig.json 依存があるなら、引き続き tsx / ts-node / tsc が必要
  • V8 14.6 で Map.prototype.getOrInsert()・Iterator.concat()、Undici 8 で fetch 更新
  • writeHeader() やレガシー _stream_* 削除、ビルド要件の引き上げに注意。2026年10月に LTS 入り予定

派手な新機能というより「標準を素直に・軽く取り込む」更新が中心の版です。Temporal とビルドなし TS 実行という2つの“当たり前化”を、自分のプロジェクトでどこまで使えるか確認しておくと、次の LTS への移行がスムーズになります。

参考リンク

TypeScript 6.0 の新機能と破壊的変更 - JavaScript製で書かれる最後のコンパイラ

TypeScript 6.0 の新機能と破壊的変更 - JavaScript製で書かれる最後のコンパイラ

約11分

TypeScript 6.0(2026年3月23日リリース)を公式アナウンスとリリースノートをもとに整理します。6.0 が「JavaScript製の最後のコンパイラ」であり 7.0(Go製・Project Corsa)へのブリッジである位置づけ、this を使わない関数の推論改善・#/ サブパスインポート・es2025 lib・Temporal 型などの新機能、そして strict や module/target の既定値変更、amd/umd や outFile の削除、module 名前空間構文や import assert の廃止といった破壊的変更、ignoreDeprecations や stableTypeOrdering による移行までを一次ソースでまとめます。

Deno 2.7 の注目点 - Temporal API 安定化、Windows ARM、package.json overrides

Deno 2.7 の注目点 - Temporal API 安定化、Windows ARM、package.json overrides

約8分

2026年2月リリースの Deno 2.7 を整理します。長年待たれた Temporal API の安定化、Windows ARM ネイティブ対応、package.json の overrides による依存固定、brotli 圧縮ストリーム、自己展開する compile バイナリなど、JavaScript ランタイムとしての成熟点をまとめます。

Deno チームが Cloudflare に合流 - ランタイムは1年、Deno Deploy は6か月で終了へ

Deno チームが Cloudflare に合流 - ランタイムは1年、Deno Deploy は6か月で終了へ

約21分

2026年10月9日、Deno のチーム全員が Cloudflare に合流すると発表されました。Deno ランタイムは今後1年間の毎月のバグ修正・セキュリティ修正リリースで開発を終え、Deno Deploy は6か月後に停止、JSR は運営を継続してインフラを Cloudflare へ移します。狙いは Deno が作った celld(Durable Objects を自前のサーバーで分散実行する Rust 製デーモン)を workerd に統合することです。発表の中身、何が続いて何が終わるのか、公式に書かれていないこと、いま Deno を使っている人が確認しておくことを整理します。

楽天市場のおすすめPR / 楽天アフィリエイト