Node.js 10,12,14のためのTypeScriptコンパイラ設定(targetとlib)


本稿では、Node.jsのバージョンに合ったTypeScriptのコンパイル設定(tsconfig.json)を紹介します。

サーバサイドアプリケーションやCLIアプリケーションをTypeScriptで開発する場合、実行環境としてNode.jsのバージョンを気にすることになります。本稿は、狙ったNode.jsのバージョンに合ったコンパイル設定はどうしたらいいかについて説明するものです。

Node.js 10

tsconfig.json
{
  "compilerOptions": {
    "target": "es2018",
    "lib": ["es2018"]
  }
}

Node.js 10は、ES2018の構文とライブラリの両方を100%サポートしているので、targetlibes2018にする。

Node.js 12

Node.js 12.9未満の場合

tsconfig.json
{
  "compilerOptions": {
    "target": "es2019",
    "lib": [
      "es2019",
      "es2020.bigint",
      "es2020.string",
      "es2020.symbol.wellknown"
    ]
  }
}

Node.js 12.9未満はES2019の構文とライブラリを100%サポートしているので、targetlibes2019で良い。また、ES2020のライブラリも一部もサポートしているので、それらをlibに加えて良い。

Node.js 12.9以降の場合

tsconfig.json
{
  "compilerOptions": {
    "target": "es2019",
    "lib": ["es2020"]
  }
}

Node.js 12.9以降は、ES2019の構文と、ES2020のライブラリをサポートしているので、targetes2019にし、libes2020にする。

Node.js 14

tsconfig.json
{
  "compilerOptions": {
    "target": "es2020",
    "lib": ["es2020"]
  }
}

Node.js 14.0.0からは、ES2020の構文とライブラリの両方を100%サポートしているので、targetlibes2020で良い。

参考: Node.jsのサポート終了日

参考までに、Node.js(LTS)のサポート終了日は以下のとおり:

  • Node.js 8 → すでに終了
  • Node.js 10 → 2021-04-30まで
  • Node.js 12 → 2022-04-30まで
  • Node.js 14 → 2023-04-30まで

合わせて読むといいかも

参考文献


最後までお読みくださりありがとうございました。Twitterでは、Qiitaに書かない技術ネタなどもツイートしているので、よかったらフォローしてもらえると嬉しいですTwitter@suin