Closed5

TypeScriptで不具合を防ぐための追加の設定(tsconfig, eslint)

君津君津

前提として不具合は設定では防ぎきれない
メンバーの力量、コードレビュー、テスト、Schema、コーディング規約、チーム規模など複数の要素を整えて減らせるもの。

君津君津

前提2つ目として設定は一般に推奨されるものをちゃんと遵守するのが第一歩

  • tsconfigならstrict, eslintなら各プラグインのrecommendedを有効にすること
  • eslintに関してはwarnは基本的に無視されると思って、erroroffに整理し、errorを全て潰すこと
  • tsc, eslintをCIで回し、遵守していないものをしっかり落とすこと
  • フォーマットについては設定を試行錯誤する必要はない
    • ただしフォーマットはかけ、これもCIでチェックすること
君津君津

tsconfigについては

  • noFallthroughCasesInSwitch
  • noUncheckedIndexedAccess

を追加で有効にしたい

noFallthroughCasesInSwitchswitch文の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-expressionsbooleanが要求される箇所でboolean以外の値をエラーにする
補足するとこれは例えば||の左辺に0""が来ることを防ぎたいため

君津君津

@typescript-eslint/no-non-null-assertion, @typescript-eslint/strict-boolean-expressionsはstrictオプションでも入った
strict-type-checkedの方が良いかも

このスクラップは3ヶ月前にクローズされました