eslint/no-empty-pattern 正确性
它做了什么
禁止空的解构模式。
为什么这是不好的?
在使用解构时,有可能创建一个没有任何效果的模式。 当在嵌套对象解构模式的右侧使用空的大括号时,就会发生这种情况,例如:
JavaScript
// 不会创建任何变量
var {a: {}} = foo;在此代码中,没有创建新变量,因为 a 只是位置辅助符, 而 {} 本应包含要创建的变量,例如:
JavaScript
// 创建变量 b
var {a: { b }} = foo;在许多情况下,空对象模式是一个错误, 作者原本意图是使用默认值,例如:
JavaScript
// 创建变量 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 = []}) {}如何使用
通过配置文件或 CLI 启用此规则,可以使用:
json
{
"rules": {
"no-empty-pattern": "error"
}
}bash
oxlint --deny no-empty-pattern