eslint/no-new-native-nonconstructor Correctness
What it does
Disallow new
operators with global non-constructor functions (Symbol
, BigInt
)
Why is this bad?
Both new Symbol
and new BigInt
throw a type error because they are functions and not classes. It is easy to make this mistake by assuming the uppercase letters indicate classes.
Example
Examples of incorrect code for this rule:
js
// throws a TypeError
let foo = new Symbol("foo");
// throws a TypeError
let result = new BigInt(9007199254740991);
Examples of correct code for this rule:
js
let foo = Symbol("foo");
let result = BigInt(9007199254740991);