You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.1 KiB

description
Disallow iterating over an array with a for-in loop.

🛑 This file is source code, not the primary documentation location! 🛑

See https://typescript-eslint.io/rules/no-for-in-array for documentation.

A for-in loop (for (var i in o)) iterates over the properties of an Object. While it is legal to use for-in loops with array types, it is not common. for-in will iterate over the indices of the array as strings, omitting any "holes" in the array.

Examples

Incorrect

declare const array: string[];

for (const i in array) {
  console.log(array[i]);
}

for (const i in array) {
  console.log(i, array[i]);
}

Correct

declare const array: string[];

for (const value of array) {
  console.log(value);
}

for (let i = 0; i < array.length; i += 1) {
  console.log(i, array[i]);
}

array.forEach((value, i) => {
  console.log(i, value);
})

for (const [i, value] of array.entries()) {
  console.log(i, value);
}

When Not To Use It

If you want to iterate through a loop using the indices in an array as strings, you can turn off this rule.