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 是一个参数。
  }
}

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "no-class-assign": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "no-class-assign": "error",
  },
});
bash
oxlint --deny no-class-assign

版本

此规则于 v0.0.3 中添加。

参考资料