Eslint和Prettier,当下一行包含在括号中时,没有半规则会导致行执行

时间:2018-11-29 15:51:07

标签: javascript eslint prettier

我目前在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()

我可以简单地删除括号,但是在某些情况下,我需要括号才能使下一行正常工作。

我也可以做类似if (a.id && a.id != b.id) doStuff()的事情,但是那时我正在更改样式代码。

有什么办法解决吗?

1 个答案:

答案 0 :(得分:0)

您可以使用标准分号作为分隔符;

let a = [true].find(Boolean)

; (a || !a) && console.log('gotcha')

或者是空的语句{}

let a = [true].find(Boolean)

{}

(a || !a) && console.log('gotcha')

或使用void operator分隔行,但需要括号才能执行第二部分。

let a = [true].find(Boolean)

void ((a || !a) && console.log('gotcha'))
console.log(a);