Skip to content

noInvalidBuiltinInstantiation

诊断类别:lint/correctness/noInvalidBuiltinInstantiation

¥Diagnostic Category: lint/correctness/noInvalidBuiltinInstantiation

自从:v1.7.2

¥Since: v1.7.2

来源:

¥Sources:

确保内置函数正确实例化。

¥Ensure that builtins are correctly instantiated.

以下内置函数需要实例化 new

¥The following builtins require new to be instantiate:

  • ArrayBuffer

  • BigInt64Array

  • BigUint64Array

  • DataView

  • FinalizationRegistry

  • Float32Array

  • Float64Array

  • Int16Array

  • Int32Array

  • Int8Array

  • 地图

    ¥Map

  • Promise

  • 代理

    ¥Proxy

  • 设置

    ¥Set

  • SharedArrayBuffer

  • Uint16Array

  • Uint32Array

  • Uint8Array

  • Uint8ClampedArray

  • WeakMap

  • WeakRef

  • WeakSet

相反,以下内置函数不能用 new 建立:

¥Conversely, the following builtins cannot be instaiated with new:

  • BigInt

  • 符号

    ¥Symbol

¥Examples

¥Invalid

const text = new BigInt(1);
code-block.js:1:14 lint/correctness/noInvalidBuiltinInstantiation  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━

Use BigInt() instead of new BigInt().

> 1 │ const text = new BigInt(1);
^^^^^^^^^^^^^
2 │

Unsafe fix: Remove new keyword.

1 │ const·text·=·new·BigInt(1);
----
const map = Map([
['foo', 'bar']
]);
code-block.js:1:13 lint/correctness/noInvalidBuiltinInstantiation  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━

Use new Map() instead of Map().

> 1 │ const map = Map([
^^^^^
> 2 │ [‘foo’, ‘bar’]
> 3 │ ]);
^^
4 │

Unsafe fix: Add new keyword.

1 │ const·map·=·new·Map([
++++

¥Valid

const text = BigInt(1);
const map = new Map([
['foo', 'bar']
]);

¥Related links