如何消除使用&&和`?:`的`no-unused-expressions` eslint错误?

时间:2018-08-21 07:12:35

标签: javascript eslintrc

问题陈述:

  

this.componentC && this.componentC.render()//默认情况下,根据no-unused-expressions拖欠规则,会抛出错误

2 个答案:

答案 0 :(得分:1)

当需要评估两个表达式是否为真时,

&&是合适的。如果不是这种情况,例如,如果您需要在评估其他表达式(例如函数调用)之前测试expression1的真实性,则应使用if语句。要修改原始代码,请执行以下操作:

if (this.componentC) this.componentC.render();

Linters会警告未使用的表达式,因为它们是代码的味道,表示您可能实现了某些错误,例如此处。

类似地,如果您有未使用的表达式,则使用条件(三元)运算符:

someCondition
? someFn1()
: someFn2();

如果不使用表达式的结果,则应改用if/else

if (someCondition) someFn1();
else someFn2();

编程的主要目标之一应该是编写清晰易懂的代码-除非您golfing,否则请不要仅仅因为代码字符过多而忽略代码字符数。

答案 1 :(得分:-2)

以下是我的建议:

只需将下面的overrides条目添加到您的.eslintrc.json/js

overrides: [{
        files: ["./src/*.js"],
        rules: {
            "no-unused-expressions": [{
                "allowShortCircuit": true,
                "allowTernary": true
            }]
        },
    }
],