Eslint и Prettier no semi rule не вызывает выполнение строки, когда следующая строка заключена в скобки - PullRequest
0 голосов
/ 29 ноября 2018

У меня в настоящее время установлено правило nosemi в Prettier и ESLint.Рассмотрим следующее.

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 голосов
/ 29 ноября 2018

Вы можете использовать стандартную точку с запятой в качестве разделителя ;.

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);
...