Spec-Zone.ru › ESLint

id-denylist

Запретить указанные идентификаторы

«Есть только две сложные вещи в информатике: проверка кэша и именование вещей.» — Фил Карлтон

Общие имена могут привести к трудночитаемому коду. Данное правило позволяет указать список запрещённых имён идентификаторов, чтобы избежать этой практики.

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

Это правило запрещает указанные идентификаторы в присваиваниях и function определениях.

Это правило будет выявлять запрещённые идентификаторы, которые являются:

  • объявлениями переменных
  • объявлениями функций
  • свойствами объектов, присваиваемыми во время создания объекта
  • полями класса
  • методами класса

Это правило не будет выявлять запрещённые идентификаторы, которые являются:

  • вызовами функций (поэтому вы по-прежнему можете использовать функции, которыми вы не управляете)
  • свойствами объектов (поэтому вы по-прежнему можете использовать объекты, которыми вы не управляете)

Настройки

Правило принимает один или несколько строк в качестве настроек: имена ограниченных идентификаторов.

Например, для ограничения использования общих общих идентификаторов:

{
    "id-denylist": ["error", "data", "err", "e", "cb", "callback"]
}

Примечание: Первый элемент массива предназначен для уровня серьёзности правила (см. Настройка правил). Остальные элементы массива — это идентификаторы, которые вы хотите запретить.

Примеры неправильного кода для этого правила с примерами "data", "callback" запрещённых идентификаторов:

Открыть в Playground
/*eslint id-denylist: ["error", "data", "callback"] */

var data = { ...values };

function callback() {
    // ...
}

element.callback = function() {
    // ...
};

var itemSet = {
    data: [...values]
};

class Foo {
    data = [];
}

class Bar {
    #data = [];
}

class Baz {
    callback() {}
}

class Qux {
    #callback() {}
}

Примеры правильного кода для этого правила с примерами "data", "callback" запрещённых идентификаторов:

Открыть в Playground
/*eslint id-denylist: ["error", "data", "callback"] */

var encodingOptions = {...values};

function processFileResult() {
    // ...
}

element.successHandler = function() {
    // ...
};

var itemSet = {
    entities: [...values]
};

callback(); // all function calls are ignored

foo.callback(); // all function calls are ignored

foo.data; // all property names that are not assignments are ignored

class Foo {
    items = [];
}

class Bar {
    #items = [];
}

class Baz {
    method() {}
}

class Qux {
    #method() {}
}

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

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

Версия

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

Ресурсы

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

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

Spec-Zone.ru

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