Node.js + TypeScript で tsconfig.json の target や module に悩んだ時にやること

Node.js + TypeScript の環境を作る時に、tsconfig.json 内の target や module を何にしたらいいのだろう、と考えることがありました。

これらを決定するために二つの良い方法があります。

Node Target Mapping を参考にする

Node Target Mapping に、Node.js のバージョンごとに推奨される target や module の設定が載っています。

これらを参考にすると、無駄な変換が少なくなったり出力されるJSファイルのサイズも最小限にできます。

tsconfig/bases を使う

各環境ごとに推奨されるtsconfig.jsonの設定がnpmモジュールとして提供されています。

githubはこちらです。

例えば、Node.jsのバージョンが14の場合は、記載されているように以下のモジュールをインストールします。

npm install --save-dev @tsconfig/node14
// または
yarn add --dev @tsconfig/node14

そして、tsconfig.json ファイルに以下のように追記すればOKです。

"extends": "@tsconfig/node14/tsconfig.json"

実際に以下のコマンドでtscの設定をみると、@tsconfig/node14/tsconfig.json の内容が反映されています。

npx tsc --showConfig