Skip to content
← Back to rules

eslint/no-class-assign 正确性

This rule is turned on by default.

它的作用

禁止重新分配类变量。

此规则可以在 TypeScript 代码中禁用,因为 TypeScript 编译器会强制执行此检查。

为什么这是不好的?

ClassDeclaration 会创建一个可被重新赋值的变量,但在大多数情况下,这种重新赋值是错误的。

示例

此规则的错误代码示例:

javascript
class A {}
A = 0;
javascript
A = 0;
class A {}
javascript
class A {
  b() {
    A = 0;
  }
}
javascript
let A = class A {
  b() {
    A = 0;
    // `let A` 被类名遮蔽。
  }
};

此规则的正确代码示例:

javascript
let A = class A {};
A = 0; // A 是一个变量。
javascript
let A = class {
  b() {
    A = 0; // A 是一个变量。
  }
};
javascript
class A {
  b(A) {
    A = 0; // A 是一个参数。
  }
}

如何使用

要通过配置文件或 CLI 启用此规则,可以使用:

json
{
  "rules": {
    "no-class-assign": "error"
  }
}
bash
oxlint --deny no-class-assign

参考资料