我正在从事一个巨大的项目,WebStorm检查始终为我提供了转换单个案例或案例+默认值的交换机结构的方法,
switch (fieldInfo.Type()) {
case this.TYPE_nesTED:
changedFieldInfo.addFieldFromPrototype(proto)
break;
default:
changedFieldInfo._fieldInfo[this.FI_FIELDS] = [];
break;
}
到这样的其他构造
if (fieldInfo.Type() === this.TYPE_nesTED) {
changedFieldInfo.addFieldFromPrototype(proto);
} else {
changedFieldInfo._fieldInfo[this.FI_FIELDS] = [];
}
我的同事说,即使开关只有一个case子句,也更易于阅读,尤其是在检查上面摘录中的TYPE等枚举时。
js社区对此有何看法? 还要假设我们不会增加第二个case子句,也不会经常回到单个子句,因此维护问题很小。
还有一个问题,是否可以将case子句中带有break的switch转换为不使用额外代码的情况,例如
switch (fieldInfo.Type()) {
case this.TYPE_nesTED:
if(smthIsTrue)
break;
changedFieldInfo.addFieldFromPrototype(proto)
break;
default:
changedFieldInfo._fieldInfo[this.FI_FIELDS] = [];
break;
}