【发布时间】:2017-10-30 16:12:26
【问题描述】:
对于一个对象x
const x = {
a: 'foo',
b: () => { return 'bar' )
}
是否可以在一个步骤中解构 x 以将 a 和 b 作为字符串?
{a, <something with b?>} = x
console.log(a, b) // 'foo bar'
在更广泛的范围内,我对如何干净地解构单个对象中包含的不同类型感到困惑
在现实世界中,a 是一个调用,b 是一个嵌套对象
const x = {
a: c(), // returns an object
b: {
x: {...},
y: () => {...}
} // is an object
}
// is this even doable
{< some magic stuff >} = x
typeof a === typeof b //true
【问题讨论】:
-
解构不能调用函数。
-
解构赋值专门用于常规对象和数组,不适用于外来对象。此外,解构既不包括隐式也不包括显式类型转换。赋值的类型和对应的对象属性的类型总是相同的。这是一个机械过程。
标签: javascript ecmascript-6 destructuring