跳至内容

eslint/no-case-declarations Pedantic

作用

禁止在 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 {}
}

参考

根据 MIT 许可证发布。