Versions

no-array-constructor

Disallow Array constructors

🔧 Fixable

Some problems reported by this rule are automatically fixable by the --fix command line option

💡 hasSuggestions

Some problems reported by this rule are manually fixable by editor suggestions

Use of the Array constructor to construct a new array is generally discouraged in favor of array literal notation because of the single-argument pitfall and because the Array global may be redefined. The exception is when the Array constructor is used to intentionally create sparse arrays of a specified size by giving the constructor a single numeric argument.

Rule Details

This rule disallows Array constructors.

Examples of incorrect code for this rule:

Open in Playground
/*eslint no-array-constructor: "error"*/ Array(); Array(0, 1, 2); new Array(0, 1, 2); Array(...args); 

Examples of correct code for this rule:

Open in Playground
/*eslint no-array-constructor: "error"*/ Array(500); new Array(someOtherArray.length); [0, 1, 2]; const createArray = Array => new Array(); 

This rule additionally supports TypeScript type syntax.

Examples of correct code for this rule:

Open in Playground
/*eslint no-array-constructor: "error"*/ new Array<number>(1, 2, 3); new Array<Foo>(); Array<number>(1, 2, 3); Array<Foo>(); Array?.foo(); 

Examples of incorrect code for this rule:

Open in Playground
/*eslint no-array-constructor: "error"*/ new Array(); new Array(0, 1, 2); Array?.(x, y); Array?.(0, 1, 2); 

When Not To Use It

This rule enforces a nearly universal stylistic concern. That being said, this rule may be disabled if the constructor style is preferred.

Version

This rule was introduced in ESLint v0.4.0.

Resources

Change Language