Как избавиться от ошибки eslint `no-unused-expressions`, для использования`&&`и`?:`?
Постановка задачи:
this.componentC && this.componentC.render () // по умолчанию выдает ошибку
no-unused-expressions
правило эслинт
2 ответа
&&
подходит для оценки правильности двух выражений. Если это не так - например, если вам нужно проверить expression1
Правдивость, прежде чем оценивать какое-то другое выражение (например, вызов функции), тогда вы должны использовать if
заявления. Чтобы исправить свой оригинальный код:
if (this.componentC) this.componentC.render();
Линтеры предупреждают о неиспользованных выражениях, потому что они пахнут кодом и указывают на то, что вы, вероятно, реализуете что-то не так, как здесь.
Аналогично, с условным (троичным) оператором, если у вас есть неиспользуемое выражение:
someCondition
? someFn1()
: someFn2();
если вы не используете результат выражения, вы должны использовать if/else
вместо:
if (someCondition) someFn1();
else someFn2();
Одна из основных целей программирования должна заключаться в написании ясного, понятного кода - не уклоняйтесь от подсчета количества символов кода, просто ради этого, если только вы не играете в гольф.
Ниже моя рекомендация:
Просто добавьте ниже overrides
вход в ваш .eslintrc.json/js
overrides: [{
files: ["./src/*.js"],
rules: {
"no-unused-expressions": [{
"allowShortCircuit": true,
"allowTernary": true
}]
},
}
],