问题陈述:
this.componentC && this.componentC.render()//默认情况下,根据
no-unused-expressions
拖欠规则,会抛出错误
答案 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
}]
},
}
],