pve-eslint/eslint/docs/rules/no-class-assign.md
Dominik Csapak eb39fafa4f first commit
includes a (minimal) working wrapper

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2020-04-06 15:06:03 +02:00

94 lines
1.4 KiB
Markdown

# Disallow modifying variables of class declarations (no-class-assign)
`ClassDeclaration` creates a variable, and we can modify the variable.
```js
/*eslint-env es6*/
class A { }
A = 0;
```
But the modification is a mistake in most cases.
## Rule Details
This rule is aimed to flag modifying variables of class declarations.
Examples of **incorrect** code for this rule:
```js
/*eslint no-class-assign: "error"*/
/*eslint-env es6*/
class A { }
A = 0;
```
```js
/*eslint no-class-assign: "error"*/
/*eslint-env es6*/
A = 0;
class A { }
```
```js
/*eslint no-class-assign: "error"*/
/*eslint-env es6*/
class A {
b() {
A = 0;
}
}
```
```js
/*eslint no-class-assign: "error"*/
/*eslint-env es6*/
let A = class A {
b() {
A = 0;
// `let A` is shadowed by the class name.
}
}
```
Examples of **correct** code for this rule:
```js
/*eslint no-class-assign: "error"*/
/*eslint-env es6*/
let A = class A { }
A = 0; // A is a variable.
```
```js
/*eslint no-class-assign: "error"*/
/*eslint-env es6*/
let A = class {
b() {
A = 0; // A is a variable.
}
}
```
```js
/*eslint no-class-assign: 2*/
/*eslint-env es6*/
class A {
b(A) {
A = 0; // A is a parameter.
}
}
```
## When Not To Use It
If you don't want to be notified about modifying variables of class declarations, you can safely disable this rule.