版本

no-empty-pattern

禁止空解构模式

推荐

配置文件 中使用来自 @eslint/jsrecommended 配置会启用此规则。

在使用解构时,可以创建一个没有效果的模式。当在嵌入式对象解构模式的右侧使用空花括号时,就会发生这种情况,例如

// 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 中引入的。

资源

更改语言