Closed5
TypeScriptで不具合を防ぐための追加の設定(tsconfig, eslint)
前提として不具合は設定では防ぎきれない
メンバーの力量、コードレビュー、テスト、Schema、コーディング規約、チーム規模など複数の要素を整えて減らせるもの。
前提2つ目として設定は一般に推奨されるものをちゃんと遵守するのが第一歩
- tsconfigならstrict, eslintなら各プラグインのrecommendedを有効にすること
- eslintに関しては
warn
は基本的に無視されると思って、error
かoff
に整理し、error
を全て潰すこと - tsc, eslintをCIで回し、遵守していないものをしっかり落とすこと
- フォーマットについては設定を試行錯誤する必要はない
- ただしフォーマットはかけ、これもCIでチェックすること
tsconfigについては
noFallthroughCasesInSwitch
noUncheckedIndexedAccess
を追加で有効にしたい
noFallthroughCasesInSwitch
はswitch
文のcase
節でbreak
, return
を強制する。
noUncheckedIndexedAccess
は配列やインデックス型の要素を取り出す時にundefined
チェックを強制する。
eslintでは
@typescript-eslint/no-non-null-assertion
@typescript-eslint/strict-boolean-expressions
を追加で有効にしたい
@typescript-eslint/no-non-null-assertion
は!
でチェックをバイパスした場合エラーにする
@typescript-eslint/strict-boolean-expressions
はboolean
が要求される箇所でboolean
以外の値をエラーにする
補足するとこれは例えば||
の左辺に0
や""
が来ることを防ぎたいため
@typescript-eslint/no-non-null-assertion
, @typescript-eslint/strict-boolean-expressions
はstrictオプションでも入った
strict-type-checkedの方が良いかも
このスクラップは2024/02/03にクローズされました