mirror of
https://git.proxmox.com/git/pve-eslint
synced 2025-10-09 03:01:46 +00:00

includes a (minimal) working wrapper Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
94 lines
1.4 KiB
Markdown
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.
|