no-duplicate-case
不允許重複的 case 標籤
✅ 建議
在設定檔中使用來自 @eslint/js
的 recommended
設定,啟用此規則
如果 switch
語句在 case
子句中具有重複的測試表達式,則可能是程式設計師複製了 case
子句但忘記更改測試表達式。
規則詳細資訊
此規則不允許在 switch
語句的 case
子句中使用重複的測試表達式。
此規則的錯誤程式碼範例
在遊樂場開啟
/*eslint no-duplicate-case: "error"*/
const 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"*/
const 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 中引入。