Skip to content
NewBun 1.4.5 is out. Release notes
AphrodyBun

Linter · Rules

no-array-constructor

Disallow Array constructors in favor of array literals

Array() behaves differently depending on how many arguments it gets. Array(10, 20) is an array with two items, but Array(10) is an array with 10 empty slots. An array literal always holds what you wrote.

The rule reports Array() and new Array() with no argument or with more than one. A call with one argument is allowed, because that's how you make an array of a given length.

--fix rewrites the call to an array literal.

Configure

Off by default. To turn it on:

bunfig.toml
[lint.rules]
"no-array-constructor" = "error" # or "warn"

Examples

Reported:

const empty = new Array();
const sizes = Array(10, 20, 30);

Not reported:

const empty = [];
const sizes = [10, 20, 30];
const slots = new Array(5);

In TypeScript, a call with a type argument isn't reported either:

const names = new Array<string>();