Как установить значение по умолчанию для другого свойства, если первое имеет значение null или не определено с помощью ES6 Object destruuring
В поисках удобного способа получить доступ ко второму ненулевому свойству из объекта, когда первое свойство имеет нулевое или неопределенное значение, используя деструктуризацию объекта ES6.
ES5 эквивалент:
var obj = { a: null, b: 2 };
var num = obj.a || obj.b; // num = 2
Используя ES6 (что-то вроде):
const { num: a || b } = obj; // <- how to achieve the above effect here?
2 ответа
const { a: num = obj.b } = obj;
(Это работает только с undefined
, не с null
)
или же
const num = (({a, b}) => a || b)(obj)
Значения по умолчанию при деструктуризации работают только с undefined
не null
, С
var obj = { a: undefined, b: 2}
ты мог бы использовать ужасный хак
var { b: num, a: num = num } = obj;
или его более читаемый вариант
const { b, a: num = b } = obj;
который однако вводит дополнительный идентификатор b
в объеме.