版本

no-class-assign

禁止重新賦值類別成員

建議

設定檔中使用 @eslint/jsrecommended 設定會啟用此規則

ClassDeclaration 會建立一個變數,我們可以修改這個變數。

class A { }
A = 0;

但在大多數情況下,修改是一個錯誤。

規則詳情

此規則旨在標記修改類別宣告的變數。

此規則的不正確程式碼範例

在遊樂場中開啟
/*eslint no-class-assign: "error"*/

class A { }
A = 0;
在遊樂場中開啟
/*eslint no-class-assign: "error"*/

A = 0;
class A { }
在遊樂場中開啟
/*eslint no-class-assign: "error"*/

class A {
    b() {
        A = 0;
    }
}
在遊樂場中開啟
/*eslint no-class-assign: "error"*/

let A = class A {
    b() {
        A = 0;
        // `let A` is shadowed by the class name.
    }
}

此規則的正確程式碼範例

在遊樂場中開啟
/*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.
    }
}

何時不該使用

如果您不想收到關於修改類別宣告變數的通知,您可以安全地停用此規則。

由 TypeScript 處理

當使用 TypeScript 時,停用此規則是安全的,因為 TypeScript 編譯器會強制執行此檢查。

版本

此規則是在 ESLint v1.0.0-rc-1 中引入的。

資源

變更語言