Versions

no-class-assign

Disallow reassigning class members

Recommended

Using the recommended config from @eslint/js in a configuration file enables this rule

ClassDeclaration creates a variable, and we can modify the variable.

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:

Open in Playground
/*eslint no-class-assign: "error"*/

class A { }
A = 0;
Open in Playground
/*eslint no-class-assign: "error"*/

A = 0;
class A { }
Open in Playground
/*eslint no-class-assign: "error"*/

class A {
    b() {
        A = 0;
    }
}
Open in Playground
/*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:

Open in Playground
/*eslint no-class-assign: "error"*/

let A = class A { }
A = 0; // A is a variable.
Open in Playground
/*eslint no-class-assign: "error"*/

let A = class {
    b() {
        A = 0; // A is a variable.
    }
}
Open in Playground
/*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.

Resources

Change Language
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy