# no-empty-pattern
禁止空的解构模式
配置文件中的 "extends": "eslint:recommended" 属性启用了该规则
使用解构时,可以创建没有效果的模式。当嵌入对象解构模式的右侧使用空花括号时,会发生这种情况,例如:
// 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 foo([]) {}
function foo({a: {}}) {}
function foo({a: []}) {}
此规则的正确代码示例:
/*eslint no-empty-pattern: "error"*/
var {a = {}} = foo;
var {a = []} = foo;
function foo({a = {}}) {}
function foo({a = []}) {}