no-nested-ternary

三元表达式在简单的判断取值中使用,还是很简洁的,但是当遇到嵌套逻辑时,可读性就变得很差,实际项目中,我是这么要求团队=》禁用。

1
var foo = bar ? baz : qux === quxx ? bing : bam;

no-nested-ternary

为了约束这类代码的存在,eslint中会增加no-nested-ternary

规则介绍戳这里

当然,对于易读性,我们可以加括号来提高易读性,但事实证明并不能解决问题。so,不建议这么做。

那么这类逻辑的等价替换应该如何去写呢。

等价替换的方式

  1. if else
  2. switch
  3. 策略模式,构建策略对象

上述方式就可以替换我们原本的嵌套三元表达式写法。