no-class-assign - ESLint - Pluggable JavaScript Linter (original) (raw)
Disallow reassigning class members
✅ Recommended
Using the recommended
config from @eslint/js
in a configuration file enables this rule
Table of Contents
ClassDeclaration
creates a variable, and we can modify the variable.
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:
/*eslint no-class-assign: "error"*/
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"*/
let A = class A { }
A = 0; // A is a variable.
/*eslint no-class-assign: "error"*/
let A = class {
b() {
A = 0; // A is a variable.
}
}
/*eslint no-class-assign: 2*/
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.
Handled by TypeScript
It is safe to disable this rule when using TypeScript because TypeScript's compiler enforces this check.
Version
This rule was introduced in ESLint v1.0.0-rc-1.