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;
Различие между этими двумя шаблонами неочевидно, особенно потому, что проблемный пустой шаблон выглядит точно так же, как литерал объекта.
Подробности правила
Это правило предназначено для обнаружения любых пустых шаблонов в деструктурируемых объектах и массивах и сообщает о проблеме при обнаружении такого шаблона.
Примеры неправильного кода для этого правила:
/*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: }) {}
Примеры правильного кода для этого правила:
/*eslint no-empty-pattern: "error"*/
const {a = {}} = foo;
const {b = []} = foo;
function foo({a = {}}) {}
function bar({a = []}) {}
Параметры
Это правило принимает объект с параметрами-исключениями:
allowObjectPatternsAsParameters
По умолчанию имеет значение false. Если задать этому параметру значение true, пустые шаблоны объектов будут разрешены в качестве параметров функции.
Примечание: Это правило не разрешает использовать пустые шаблоны массивов в качестве параметров функции.
Примеры неправильного кода для этого правила с параметром {"allowObjectPatternsAsParameters": true}:
/*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}:
/*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