Это правильный путь:
const {
propertyA,
propertyA: {
property1
}
} = complicatedObject
Если вы хотите получить доступ как к propertyA, так и к property1 без использования множественного объявления.
console.log(propertyA) // { property1: 1, property2: 2}
console.log(property1) // 1
Но на вашем месте вы,Я бы сделал так:
const { propertyA } = complicatedObject
console.log(propertyA)
console.log(propertyA.property1)
Или, используя множественное объявление:
const { propertyA } = complicatedObject,
{ property1 } = propertyA
console.log(propertyA, property1)
На самом деле, цель вашего поста состоит в том, чтобы задать вопрос как:
const { propertyA: { property1 } } = complicatedObject
console.log(propertyA, property1)
И я бы сказал, это невозможно.Потому что конструирование объекта с двоеточием ведет себя как псевдоним свойства.Например,
const { propertyA: A } = complicatedObject
console.log(A) // works as if it is propertyA
console.log(propertyA) // won't work because propertyA is transformed to A
Аналогично,
const { propertyA: { property1 } } = complicatedObject
propertyA
преобразуется в { property1 }
и может быть доступен property1
.
Также псевдонимдо property1
,
const { propertyA: { property1: prop1 } } = complicatedObject
console.log(prop1)