Javascript 获取linter error“Unexpected token=”并对以前声明的变量进行分解结构赋值
给我一个linter错误:解析错误:在解构分配处出现意外标记=。这只是我需要更改的linter配置中的一个设置吗 我可以使用括号消除错误,但为什么需要这样做Javascript 获取linter error“Unexpected token=”并对以前声明的变量进行分解结构赋值,javascript,eslint,Javascript,Eslint,给我一个linter错误:解析错误:在解构分配处出现意外标记=。这只是我需要更改的linter配置中的一个设置吗 我可以使用括号消除错误,但为什么需要这样做 let data = [] let count, meta if (req.params.id === 'count') { // get count only } else { { data, count } = await myModel.find(filter, options) meta = { count } } 任
let data = []
let count, meta
if (req.params.id === 'count') {
// get count only
} else {
{ data, count } = await myModel.find(filter, options)
meta = { count }
}
任何以{…}开头的语句都将始终将括号内的序列解析为代码块,而不是包含解构对象表达式的对象 MDN在其声明中澄清了这一确切情况: 注:括号。。。在使用不带声明的对象文字解构赋值时,需要使用赋值语句 {a,b}={a:1,b:2}不是有效的独立语法,因为左侧的{a,b}被视为块而不是对象文字 然而,{a,b}={a:1,b:2}是有效的,var{a,b}={a:1,b:2}也是有效的 你的。。。表达式前面必须加分号,否则可用于在前一行执行函数 因为{在行首表示代码块的开始。如果没有声明或分组运算符,JS解释器将不会将{}视为表达式。
({ data, count } = await myModel.find(filter, options))
var a, b;
({a, b} = {a: 1, b: 2});