TypeScript 5.8 - Node.js連携と型チェック改善

中級 | 8分 で読める | 2025.02.28

公式ドキュメント

TypeScript 5.8とは

TypeScript 5.8は、Microsoftが2025年2月28日に公開したリリースです。この記事では、公式リリース記事で確認できる変更だけを扱います。

TypeScriptはJavaScriptへ型構文を追加し、実行前の検査やエディタ補完を提供します。5.8では新しい構文を大量に増やすより、Node.jsとのモジュール連携、型検査、ビルド時の処理が改善されました。

主な変更

return内の条件式を細かく検査

条件演算子をそのままreturnする場合、各分岐を関数の戻り値型に対して検査するようになりました。

function getUrl(value: string | URL): URL {
  return value instanceof URL ? value : value;
  // valueがstringの分岐をTypeScript 5.8がエラーとして検出
}

anyが混ざるコードでも、誤った分岐を見つけやすくする変更です。

--module nodenextrequire()からESMを扱う

Node.js 22以降で進んだCommonJSとES Modulesの相互運用に合わせ、--module nodenextではCommonJSからESMをrequire()する構成を扱えるようになりました。ただし、トップレベルawaitを含むESMなど、Node.js側の制約は残ります。

安定した--module node18

Node.js 18向けの挙動を固定したnode18モジュール設定が追加されました。nodenextの将来変化を取り込まず、Node.js 18に合わせた検査を行いたい場合に使います。

--erasableSyntaxOnly

Node.jsの型除去で直接実行できないTypeScript構文を検出するオプションです。

{
  "compilerOptions": {
    "erasableSyntaxOnly": true,
    "verbatimModuleSyntax": true
  }
}

この設定では、enum、実行時コードを含むnamespace、parameter propertiesなどが制限されます。

--libReplacement

@typescript/lib-*による標準ライブラリ置換の探索を制御できるようになりました。利用していない場合は探索を無効化できます。

Decoratorsについての訂正

Stage 3形式のDecorators対応はTypeScript 5.0で導入済みです。TypeScript 5.8固有の新機能ではありません。また、従来のexperimentalDecoratorsとは異なるため、既存コードの移行では公式ドキュメントを確認してください。

更新時の確認

  1. npx tsc --noEmitで型エラーを確認する
  2. modulemoduleResolutionを同時に確認する
  3. Node.jsの実行バージョンを固定する
  4. CIとローカルで同じTypeScriptを使う
  5. リリース記事のBehavioral Changesを読む

まとめ

TypeScript 5.8は2025年2月公開です。中心となる変更は、条件式の戻り値検査、Node.jsのESM連携、node18erasableSyntaxOnly、ビルド処理の最適化です。バージョン番号だけで導入せず、実行環境とモジュール設定を合わせて確認してください。

参考リソース

← 一覧に戻る
PR
PR
PR
PR