The "extends": "eslint:recommended"
property in a configuration file enables this rule.
ClassDeclaration
creates a variable, and we can modify the variable.
/*eslint-env es6*/ class A { } A = 0;
But the modification is a mistake in most cases.
This rule is aimed to flag modifying variables of class declarations.
Examples of incorrect code for this rule:
/*eslint no-class-assign: "error"*/ /*eslint-env es6*/ class A { } A = 0;
/*eslint no-class-assign: "error"*/ /*eslint-env es6*/ A = 0; class A { }
/*eslint no-class-assign: "error"*/ /*eslint-env es6*/ class A { b() { A = 0; } }
/*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:
/*eslint no-class-assign: "error"*/ /*eslint-env es6*/ let A = class A { } A = 0; // A is a variable.
/*eslint no-class-assign: "error"*/ /*eslint-env es6*/ let A = class { b() { A = 0; // A is a variable. } }
/*eslint no-class-assign: 2*/ /*eslint-env es6*/ class A { b(A) { A = 0; // A is a parameter. } }
If you don’t want to be notified about modifying variables of class declarations, you can safely disable this rule.
This rule was introduced in ESLint 1.0.0-rc-1.
© JS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/rules/no-class-assign