]> git.proxmox.com Git - pve-eslint.git/blame - eslint/docs/rules/no-class-assign.md
bump version to 8.4.0-3
[pve-eslint.git] / eslint / docs / rules / no-class-assign.md
CommitLineData
eb39fafa
DC
1# Disallow modifying variables of class declarations (no-class-assign)
2
3`ClassDeclaration` creates a variable, and we can modify the variable.
4
5```js
6/*eslint-env es6*/
7
8class A { }
9A = 0;
10```
11
12But the modification is a mistake in most cases.
13
14## Rule Details
15
16This rule is aimed to flag modifying variables of class declarations.
17
18Examples of **incorrect** code for this rule:
19
20```js
21/*eslint no-class-assign: "error"*/
22/*eslint-env es6*/
23
24class A { }
25A = 0;
26```
27
28```js
29/*eslint no-class-assign: "error"*/
30/*eslint-env es6*/
31
32A = 0;
33class A { }
34```
35
36```js
37/*eslint no-class-assign: "error"*/
38/*eslint-env es6*/
39
40class A {
41 b() {
42 A = 0;
43 }
44}
45```
46
47```js
48/*eslint no-class-assign: "error"*/
49/*eslint-env es6*/
50
51let A = class A {
52 b() {
53 A = 0;
54 // `let A` is shadowed by the class name.
55 }
56}
57```
58
59Examples of **correct** code for this rule:
60
61```js
62/*eslint no-class-assign: "error"*/
63/*eslint-env es6*/
64
65let A = class A { }
66A = 0; // A is a variable.
67```
68
69```js
70/*eslint no-class-assign: "error"*/
71/*eslint-env es6*/
72
73let A = class {
74 b() {
75 A = 0; // A is a variable.
76 }
77}
78```
79
80```js
81/*eslint no-class-assign: 2*/
82/*eslint-env es6*/
83
84class A {
85 b(A) {
86 A = 0; // A is a parameter.
87 }
88}
89```
90
91## When Not To Use It
92
93If you don't want to be notified about modifying variables of class declarations, you can safely disable this rule.