Как можно использовать if вместо тернарного оператора в такой конструкции?
const returnAmount = (status === 'Accepted') ? undefined : returnAmountRaw - betAmount
Как можно использовать if вместо тернарного оператора в такой конструкции?
Ответы (4 шт):
Автор решения: vsemozhebuty
→ Ссылка
Вы требуете невозможного. Ваше выражение нельзя переделать в условные блоки: если объявить переменную const вне блоков, её значение нельзя будет изменить в блоках. Если её определять внутри условных блоков, она не будет видна вне их и потеряет свой смысл.
Автор решения: Qwertiy
→ Ссылка
Только с заменой const на let:
let returnAmount
if (status !== 'Accepted') returnAmount = returnAmountRaw - betAmount
Автор решения: Qwertiy
→ Ссылка
Формально это тоже ответ, хотя лучше не городить такое:
const returnAmount = (() => {
if (status !== 'Accepted') return returnAmountRaw - betAmount
})()
Автор решения: Qwertiy
→ Ссылка
В satge 0 есть предложение про do expressions, с которым получится так:
const returnAmount = do {
if (status !== 'Accepted') returnAmountRaw - betAmount
}
Babel его уже поддерживает при включении соответствующего флага, а при компиляции получается почти исходная конструкция:
"use strict";
const returnAmount = status !== 'Accepted' ? returnAmountRaw - betAmount : void 0;