-3

问题陈述:

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

4

2 回答 2

1

&&当您需要评估两个表达式是否为真时是合适的。如果情况并非如此 - 例如,如果您需要expression1在评估其他表达式(如函数调用)之前测试 ' 的真实性,那么您应该使用if语句。要修复您的原始代码:

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

Linters 警告未使用的表达式,因为它们是代码异味,并且表明您可能执行了错误的操作,就像这里一样。

同样,如果您有一个未使用的表达式,则使用条件(三元)运算符:

someCondition
? someFn1()
: someFn2();

如果你不使用表达式的结果,你应该使用if/else

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

编程的主要目标之一应该是编写清晰易懂的代码——除非你在打高尔夫球,否则不要仅仅因为它而逃避代码字符数。

于 2018-08-21T07:20:33.390 回答
-2

以下是我的建议:

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

overrides: [{
        files: ["./src/*.js"],
        rules: {
            "no-unused-expressions": [{
                "allowShortCircuit": true,
                "allowTernary": true
            }]
        },
    }
],
于 2018-08-21T07:12:34.737 回答