Eslint и Prettier no semi rule не вызывает выполнение строки, когда следующая строка заключена в скобки
В настоящее время у меня есть 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 ответ
Вы можете использовать стандартную точку с запятой в качестве разделителя ;
,
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);