no-array-constructor - ESLint - Pluggable JavaScript Linter (original) (raw)

Disallow Array constructors

💡 hasSuggestions

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

Table of Contents

  1. Rule Details
  2. When Not To Use It
  3. Related Rules
  4. Version
  5. Resources

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:

/*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:

/*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