Как установить значение по умолчанию для другого свойства, если первое имеет значение 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 в объеме.

Другие вопросы по тегам