• 作成:

TypeScriptのtsconfig.jsonでnoUnusedLocalsなどを指定しないようにしました

strictで有効にならない警告も有効にしていました

これまではtsconfig.jsonのコンパイル時警告を以下のように設定していました。

{
  "compilerOptions": {
    "strict": true,

    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true
  }
}

strictは当然引き続き有効にするとして、 strictで有効にならない4警告も有効にしていました。これは厳格であるならあれば良いという考えによるものです。

ちょっと前からこの4警告を有効にしないことにしました。

ESLintで検出できる

まずこれらのルールはtypescript-eslintでも同じようなものを検出可能です。例えばnoImplicitReturnsならば、 typescript-eslint/explicit-function-return-type.md at master · typescript-eslint/typescript-eslint がありますね。

なのでプロダクションにデプロイするときの品質は落ちないので大丈夫です。

ts-nodeでサクッと実行したい

ts-nodeなどで動作を確認したり、そうでなくてもとりあえず動かしてみて動作を確認したいとき、 strictで有効にならない4警告があると不便です。

ts-nodeをプロジェクト内で開くと、 importやrequireするだけで未使用変数があるとエラーになってしまいます。よって一々、 ts-node -O '{"noUnusedLocals": false}' のような回避策を取る必要があります。

警告を無効化しておけば回避策は不要ですし、プロダクションでの品質も落ちません。