Spec-Zone.ru › ESLint

no-sparse-arrays

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

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

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

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

var items = [,,];

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

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

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

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

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

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

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

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

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

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

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

var items = [];
var items = new Array(23);

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

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

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

Версия

Это правило было добавлено в ESLint v0.4.0.

Дополнительные материалы

Несогласованные литералы массивов

Источники

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

© 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