跳至內容

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 {}
}

參考

以 MIT 授權發布。