eslint/no-case-declarations 严格检查
作用
禁止在 case 子句中使用词法声明。
为什么这是问题?
原因是词法声明在整个 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