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