Ответ 1
Каскадный тернарный оператор выглядит отлично для меня:
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'
}
})()
Но троянный оператор выглядит в любом случае лучше, особенно если он разделен на несколько строк.