Как избавиться от ошибки 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
            }]
        },
    }
],
Другие вопросы по тегам