]> git.proxmox.com Git - pve-eslint.git/blob - eslint/docs/src/rules/no-duplicate-case.md
bump version to 8.41.0-3
[pve-eslint.git] / eslint / docs / src / rules / no-duplicate-case.md
1 ---
2 title: no-duplicate-case
3 rule_type: problem
4 ---
5
6
7
8 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.
9
10 ## Rule Details
11
12 This rule disallows duplicate test expressions in `case` clauses of `switch` statements.
13
14 Examples of **incorrect** code for this rule:
15
16 :::incorrect
17
18 ```js
19 /*eslint no-duplicate-case: "error"*/
20
21 var a = 1,
22 one = 1;
23
24 switch (a) {
25 case 1:
26 break;
27 case 2:
28 break;
29 case 1: // duplicate test expression
30 break;
31 default:
32 break;
33 }
34
35 switch (a) {
36 case one:
37 break;
38 case 2:
39 break;
40 case one: // duplicate test expression
41 break;
42 default:
43 break;
44 }
45
46 switch (a) {
47 case "1":
48 break;
49 case "2":
50 break;
51 case "1": // duplicate test expression
52 break;
53 default:
54 break;
55 }
56 ```
57
58 :::
59
60 Examples of **correct** code for this rule:
61
62 :::correct
63
64 ```js
65 /*eslint no-duplicate-case: "error"*/
66
67 var a = 1,
68 one = 1;
69
70 switch (a) {
71 case 1:
72 break;
73 case 2:
74 break;
75 case 3:
76 break;
77 default:
78 break;
79 }
80
81 switch (a) {
82 case one:
83 break;
84 case 2:
85 break;
86 case 3:
87 break;
88 default:
89 break;
90 }
91
92 switch (a) {
93 case "1":
94 break;
95 case "2":
96 break;
97 case "3":
98 break;
99 default:
100 break;
101 }
102 ```
103
104 :::
105
106 ## When Not To Use It
107
108 In rare cases where identical test expressions in `case` clauses produce different values, which necessarily means that the expressions are causing and relying on side effects, you will have to disable this rule.
109
110 ```js
111 switch (a) {
112 case i++:
113 foo();
114 break;
115 case i++: // eslint-disable-line no-duplicate-case
116 bar();
117 break;
118 }
119 ```