版本

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 中引入。

資源

變更語言