问题陈述:
this.componentC && this.componentC.render() // 默认情况下,这会抛出错误,根据
no-unused-expressions
eslint 规则
问题陈述:
this.componentC && this.componentC.render() // 默认情况下,这会抛出错误,根据
no-unused-expressions
eslint 规则
&&
当您需要评估两个表达式是否为真时是合适的。如果情况并非如此 - 例如,如果您需要expression1
在评估其他表达式(如函数调用)之前测试 ' 的真实性,那么您应该使用if
语句。要修复您的原始代码:
if (this.componentC) this.componentC.render();
Linters 警告未使用的表达式,因为它们是代码异味,并且表明您可能执行了错误的操作,就像这里一样。
同样,如果您有一个未使用的表达式,则使用条件(三元)运算符:
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
}]
},
}
],