跳至内容

eslint/no-empty-pattern 正确性

此规则默认启用。

其功能

不允许空解构模式

这有什么问题?

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

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

在此代码中,没有创建新变量,因为 a 只是一个位置帮助器,而 {} 预期包含要创建的变量,例如

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

在很多情况下,空对象模式是错误的,作者本意是使用默认值,例如

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

这两个模式之间的区别很微妙,特别是因为有问题的空模式看起来就像一个对象字面量。

此规则的错误代码示例:

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

此规则的正确代码示例:

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

参考内容

在 MIT 许可下发布。