Spec-Zone.ru › ESLint

no-empty-pattern

Запретить пустые шаблоны деструктуризации

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

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

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

// doesn't create any variables
var {a: {}} = foo;

В этом коде новые переменные не создаются, потому что a — это просто вспомогатель для указания местоположения, в то время как {} ожидается, что он будет содержать переменные для создания, например:

// creates variable b
var {a: { b }} = foo;

Во многих случаях пустой шаблон объекта — ошибка, когда автор намеревался использовать значение по умолчанию, например:

// creates variable a
var {a = {}} = foo;

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

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

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

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

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

var {} = foo;
var [] = foo;
var {a: {}} = foo;
var {a: []} = foo;
function foo({}) {}
function bar([]) {}
function baz({a: {}}) {}
function qux({a: []}) {}

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

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

var {a = {}} = foo;
var {a = []} = foo;
function foo({a = {}}) {}
function bar({a = []}) {}

Параметры

Это правило имеет параметр объекта для исключений:

allowObjectPatternsAsParameters

По умолчанию установлено значение false. Установка этого параметра в значение true разрешает использование пустых шаблонов объектов в качестве параметров функций.

Примечание: Это правило не разрешает использование пустых шаблонов массивов в качестве параметров функций.

Примеры некорректного кода для этого правила с параметром {"allowObjectPatternsAsParameters": true}:

Открыть в Playground
/*eslint no-empty-pattern: ["error", { "allowObjectPatternsAsParameters": true }]*/

function foo({a: {}}) {}
var bar = function({a: {}}) {};
var bar = ({a: {}}) => {};
var bar = ({} = bar) => {};
var bar = ({} = { bar: 1 }) => {};

function baz([]) {}

Примеры корректного кода для этого правила с параметром {"allowObjectPatternsAsParameters": true}:

Открыть в Playground
/*eslint no-empty-pattern: ["error", { "allowObjectPatternsAsParameters": true }]*/

function foo({}) {}
var bar = function({}) {};
var bar = ({}) => {};

function baz({} = {}) {}

Версия

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

Ресурсы

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

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

Spec-Zone.ru

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