Skip to content

noDuplicateCase (since v1.0.0)

Diagnostic Category: lint/suspicious/noDuplicateCase

Sources:

Disallow duplicate case labels.

If a switch statement has duplicate test expressions in case clauses, it is likely that a programmer copied a case clause but forgot to change the test expression.

switch (a) {
case 1:
break;
case 1:
break;
default:
break;
}
suspicious/noDuplicateCase.js:4:10 lint/suspicious/noDuplicateCase ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Duplicate case label.
  
    2 │     case 1:
    3 │         break;
  > 4 │     case 1:
            ^
    5 │         break;
    6 │     default:
  
   The first similar label is here:
  
    1 │ switch (a) {
  > 2 │     case 1:
            ^
    3 │         break;
    4 │     case 1:
  
switch (a) {
case one:
break;
case one:
break;
default:
break;
}
suspicious/noDuplicateCase.js:4:10 lint/suspicious/noDuplicateCase ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Duplicate case label.
  
    2 │     case one:
    3 │         break;
  > 4 │     case one:
            ^^^
    5 │         break;
    6 │     default:
  
   The first similar label is here:
  
    1 │ switch (a) {
  > 2 │     case one:
            ^^^
    3 │         break;
    4 │     case one:
  
switch (a) {
case "1":
break;
case "1":
break;
default:
break;
}
suspicious/noDuplicateCase.js:4:10 lint/suspicious/noDuplicateCase ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

   Duplicate case label.
  
    2 │     case "1":
    3 │         break;
  > 4 │     case "1":
            ^^^
    5 │         break;
    6 │     default:
  
   The first similar label is here:
  
    1 │ switch (a) {
  > 2 │     case "1":
            ^^^
    3 │         break;
    4 │     case "1":
  
switch (a) {
case 1:
break;
case 2:
break;
default:
break;
}
switch (a) {
case one:
break;
case two:
break;
default:
break;
}
switch (a) {
case "1":
break;
case "2":
break;
default:
break;
}