Spec-Zone.ru › ESLint

no-sparse-arrays

Запрещает разреженные массивы

✅ Рекомендуется

Использование конфигурации recommended из @eslint/js в файле конфигурации включает это правило

Разреженные массивы содержат пустые ячейки, чаще всего из-за нескольких запятых в литерале массива, например:

const items = [,,];

Хотя в этом примере у массива items значение length равно 2, на самом деле в items[0] и items[1] нет значений. Возможность использовать литерал массива, содержащий только запятые, в сочетании с заданным значением length и отсутствием фактических значений элементов сбивает с толку многих разработчиков. Рассмотрим следующий пример:

const colors = [ "red",, "blue" ];

В этом примере у массива colors значение length равно 3. Но хотел ли разработчик оставить пустую ячейку в середине массива? Или это опечатка?

Путаница, связанная с разреженными массивами, заданными таким образом, достаточно велика, поэтому рекомендуется избегать их использования, если вы не уверены, что они полезны в вашем коде.

Подробное описание правила

Это правило запрещает литералы разреженных массивов, содержащие «дыры», то есть запятые, перед которыми нет элементов. Правило не распространяется на завершающую запятую после последнего элемента.

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint no-sparse-arrays: "error"*/

const items = [,];
const colors = [ "red",, "blue" ];

Примеры правильного кода для этого правила:

Открыть в Playground
/*eslint no-sparse-arrays: "error"*/

const items = [];
const arr = new Array(23);

// trailing comma (after the last element) is not a problem
const colors = [ "red", "blue", ];

Параметры

У этого правила нет параметров.

Когда не следует использовать это правило

Если вы хотите использовать разреженные массивы, это правило можно безопасно отключить.

Версия

Это правило появилось в ESLint v0.4.0.

Дополнительная информация

Несогласованные литералы массивов
www.nczonline.net

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-sparse-arrays

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API