no-duplicate-case
不允許重複的 case 標籤
✅ 建議
在設定檔中使用 @eslint/js
的 recommended
設定會啟用此規則
如果 switch
陳述式在 case
子句中有重複的測試表達式,很可能是程式設計師複製了 case
子句,但忘記變更測試表達式。
規則詳細資訊
此規則不允許 switch
陳述式的 case
子句中有重複的測試表達式。
此規則的錯誤程式碼範例
在遊樂場中開啟
/*eslint no-duplicate-case: "error"*/
var a = 1,
one = 1;
switch (a) {
case 1:
break;
case 2:
break;
default:
break;
}
switch (a) {
case one:
break;
case 2:
break;
default:
break;
}
switch (a) {
case "1":
break;
case "2":
break;
default:
break;
}
此規則的正確程式碼範例
在遊樂場中開啟
/*eslint no-duplicate-case: "error"*/
var a = 1,
one = 1;
switch (a) {
case 1:
break;
case 2:
break;
case 3:
break;
default:
break;
}
switch (a) {
case one:
break;
case 2:
break;
case 3:
break;
default:
break;
}
switch (a) {
case "1":
break;
case "2":
break;
case "3":
break;
default:
break;
}
何時不該使用
在極少數情況下,case
子句中相同的測試表達式會產生不同的值,這必然表示表達式正在引起並依賴副作用,您將必須停用此規則。
switch (a) {
case i++:
foo();
break;
case i++: // eslint-disable-line no-duplicate-case
bar();
break;
}
版本
此規則是在 ESLint v0.17.0 中引入的。