Skip to content
← Back to rules

eslint/no-case-declarations 厳格なルール

An auto-fix is available for this rule.

機能

case 節において、詞的宣言(letconstfunctionclass)を禁止します。

なぜ問題なのか?

詞的宣言は switch ブロック全体で参照可能ですが、初期化はその変数が代入された時点でのみ行われます。これは、宣言が存在する case に到達した場合にのみ発生するため、予期しない動作や実行時エラーを引き起こす可能性があります。

このルールに違反する 誤った コードの例:

javascript
switch (foo) {
  case 1:
    let x = 1;
    break;
  case 2:
    const y = 2;
    break;
  case 3:
    function f() {}
    break;
  default:
    class C {}
}

このルールに準拠する 正しい コードの例:

javascript
switch (foo) {
  case 1: {
    let x = 1;
    break;
  }
  case 2: {
    const y = 2;
    break;
  }
  case 3: {
    function f() {}
    break;
  }
  default: {
    class C {}
  }
}

使用方法

設定ファイルまたは CLI でこのルールを 有効化 するには、以下のように使用できます:

json
{
  "rules": {
    "no-case-declarations": "error"
  }
}
bash
oxlint --deny no-case-declarations

参照