---
url: /docs/guide/usage/linter/rules/eslint/no-new-native-nonconstructor.md
---

### 作用

禁止对全局的非构造函数（`Symbol`、`BigInt`）使用 `new` 运算符。

对于 TypeScript 代码，可以禁用此规则，因为 TypeScript 编译器会强制执行此检查。

### 为什么这不好？

`new Symbol` 和 `new BigInt` 都会抛出类型错误，因为它们是函数而不是类。很容易因为大写字母而误以为它们是类，从而犯下这个错误。

### 示例

以下是此规则的**错误**代码示例：

```js
// 抛出 TypeError
let foo = new Symbol("foo");

// 抛出 TypeError
let result = new BigInt(9007199254740991);
```

以下是此规则的**正确**代码示例：

```js
let foo = Symbol("foo");

let result = BigInt(9007199254740991);
```

## 如何使用

## 版本

此规则添加于 v0.3.3。

## 参考资料
