我目前在Prettier和ESLint中设置了nosemi
规则。考虑以下内容。
let a = myArr.find(x => x.id === c.id)
let b = myArr2.find(x => x.id === c.id)
(a.id && a.id != b.id) && doStuff()
它试图将其作为一个函数来执行…
let b = myArr2.find(x => x.id === c.id)(a.id && a.id != b.id) && doStuff()
我可以简单地删除parens,但在某些情况下,我需要parens才能使下一行正常工作。
我也可以做一些类似if (a.id && a.id != b.id) doStuff()
的事情,但在这一点上,我正在为样式更改代码。
有办法绕过这个吗?
您可以使用标准分号作为分隔符;
。
let a = [true].find(Boolean)
; (a || !a) && console.log('gotcha')
或者一个空的块语句{}
。
let a = [true].find(Boolean)
{}
(a || !a) && console.log('gotcha')
或者使用void
运算符,它分隔行,但需要一个括号来执行第二部分。
let a = [true].find(Boolean)
void ((a || !a) && console.log('gotcha'))
console.log(a);