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}'
のような回避策を取る必要があります。
警告を無効化しておけば回避策は不要ですし、プロダクションでの品質も落ちません。