Вы можете деструктурировать и назначить значение по умолчанию в одном операторе.
function someFunction({
current: {
selectionStart: Start,
selectionEnd: End
} = {},
current = {}
},
AppStateSetter) {
// now you can use the let variables Start, End and current,
// with current's default value set to empty object
}
Если вы не хотите назначать значение по умолчанию для текущей, но по-прежнему хотите использовать эту переменную, вы можете просто написатьназвание объекта без присвоения.Когда someFunction вызывается с пустым объектом, если вы не назначите текущее значение по умолчанию, оно будет неопределенным.
function someFunction1({
current: {
selectionStart: Start,
selectionEnd: End
} = {},
current
},
AppStateSetter) {
// now you can use the let variables Start, End and current
// if empty object is passed, current will be undefined
}
Фрагмент JsFiddle: Разрушение вложенного объекта с помощью ибез значений по умолчанию