eslint/no-case-declarations 厳格なルール
機能
case 節において、詞的宣言(let、const、function、class)を禁止します。
なぜ問題なのか?
詞的宣言は 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