Spec-Zone.ru › ESLint

no-empty-pattern

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры

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

allowObjectPatternsAsParameters

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

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

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

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

function foo({a: {}}) {}
const bar = function({a: {}}) {};
const qux = ({a: {}}) => {};
const quux = ({} = bar) => {};
const item = ({} = { bar: 1 }) => {};

function baz([]) {}

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

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

function foo({}) {}
const bar = function({}) {};
const qux = ({}) => {};

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