Skip to content
← Back to rules

eslint/no-new-native-nonconstructor 正确性

This rule is turned on by default.

它做了什么

禁止对全局非构造函数(SymbolBigInt)使用 new 操作符。

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

为什么这是不好的?

new Symbolnew BigInt 都会抛出类型错误,因为它们是函数而非类。由于大写字母常被误认为是类,因此很容易犯这种错误。

示例

此规则的错误代码示例:

js
// 抛出类型错误
let foo = new Symbol("foo");

// 抛出类型错误
let result = new BigInt(9007199254740991);

此规则的正确代码示例:

js
let foo = Symbol("foo");

let result = BigInt(9007199254740991);

如何使用

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

json
{
  "rules": {
    "no-new-native-nonconstructor": "error"
  }
}
bash
oxlint --deny no-new-native-nonconstructor

参考资料