我想根据条件为我的const validation
分配一个值。
如果this.showRequired() == true
然后它应该是'required'
如果this.showError() == true
那么它应该是'error'
。
我当然知道我可以将它提取到函数或级联三元运算符,但第一个看起来代码膨胀,后者很难看。
有更好的方法吗? if-else表达式可能吗?
答案 0 :(得分:24)
级联三元运算符对我来说很好看:
const validation = this.showRequired() ? 'required' : this.showError() ? 'error' : null
如果您认为此行太长,则可以拆分:
const validation = this.showRequired() ? 'required'
: this.showError() ? 'error'
: null
或者您可以改为使用&&
和||
:
const validation = (this.showRequired() && 'required') ||
(this.showError() && 'error')
至于将此代码移植到单独的函数中,您总是可以使用内联函数而不是创建另一个类方法:
const validation = (() => {
if (this.showRequired()) {
return 'required'
} else if (this.showError()) {
return 'error'
}
})()
但是三元运算符无论如何都看起来更好,特别是如果它分成几行。