Closed5

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

Yunosuke YamadaYunosuke Yamada

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

Yunosuke YamadaYunosuke Yamada

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

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

tsconfigについては

  • noFallthroughCasesInSwitch
  • noUncheckedIndexedAccess

を追加で有効にしたい

noFallthroughCasesInSwitchswitch文のcase節でbreak, returnを強制する。
noUncheckedIndexedAccessは配列やインデックス型の要素を取り出す時にundefinedチェックを強制する。

Yunosuke YamadaYunosuke Yamada

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""が来ることを防ぎたいため

Yunosuke YamadaYunosuke Yamada

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

このスクラップは2024/02/03にクローズされました