Skip to content

noInvalidBuiltinInstantiation

Diagnostic Category: lint/correctness/noInvalidBuiltinInstantiation

Since: v1.7.2

Sources:

Ensure that builtins are correctly instantiated.

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

Conversely, the following builtins cannot be instaiated with new:

  • BigInt
  • Symbol
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([
++++
const text = BigInt(1);
const map = new Map([
['foo', 'bar']
]);