Angular typescript如何进行对象分解赋值

Angular typescript如何进行对象分解赋值,angular,typescript,Angular,Typescript,我有一些类型脚本代码,如下所示: transform( payload: object ) { const { count = 0, malfunctions = [] } : { count: number, malfunctions: Array<object> } = payload; } 现在我对typescript相当陌生,但在我看来,编译器似乎在告诉我:“不能将对象类型‘payload’分配给类型为number和array的解构变量。” 如果这是真的,那么我应该

我有一些类型脚本代码,如下所示:

transform( payload: object ) {
    const { count = 0, malfunctions = [] } : { count: number, malfunctions: Array<object> } = payload;
}
现在我对typescript相当陌生,但在我看来,编译器似乎在告诉我:“不能将对象类型‘payload’分配给类型为number和array的解构变量。”


如果这是真的,那么我应该如何在typescript中执行分解赋值呢?

我明白了-需要在参数中执行分解:

transform( { count = 0, malfunctions = [] } : { count: number, malfunctions: Array<object> } ) {

}
transform({count=0,故障=[]}:{count:number,故障:Array}){
}

我想出来了-需要在参数中执行解构:

transform( { count = 0, malfunctions = [] } : { count: number, malfunctions: Array<object> } ) {

}
transform({count=0,故障=[]}:{count:number,故障:Array}){
}

在作业语句的右侧尝试
={…payload}
。你到底想实现什么?您是否试图提取赋值语句右侧的属性
计数
故障
?@jpavel-这不起作用-typescript似乎不允许对象rest paramsTry
={…payload}
。您到底想实现什么?您是否试图提取属性
计数
故障
?@jpavel-这不起作用-typescript似乎不允许对象rest参数您不必“在参数中执行解构”,只需拥有参数的类型即可。问题是,
object
不能被分解,因为它是一种模糊类型。因此,
transform(有效载荷:{count:number,故障:Array})
与原始代码一起工作就可以了。是的,我也可以这样做,但是以后我仍然需要对对象进行分解,或者通过点表示法访问对象上的属性,对吗?您可以像
const{count=0,故障=[]那样进行分解=有效载荷
——问题再次在于当你说“const{count=0,distroughts=[]}=payload”时使用了
对象
,这就是我所说的“我以后还必须对对象进行解构”的意思。是的,你可以在参数赋值或以后对其进行解构。。。但无论如何,原始错误与此无关。您不必“在参数中执行解构”,只需具有参数的类型即可。问题是,
object
不能被分解,因为它是一种模糊类型。因此,
transform(有效载荷:{count:number,故障:Array})
与原始代码一起工作就可以了。是的,我也可以这样做,但是以后我仍然需要对对象进行分解,或者通过点表示法访问对象上的属性,对吗?您可以像
const{count=0,故障=[]那样进行分解=有效载荷
——问题再次在于当你说“const{count=0,distroughts=[]}=payload”时使用了
对象
,这就是我所说的“我以后还必须对对象进行解构”的意思。是的,你可以在参数赋值或以后对其进行解构。。。但无论如何,最初的错误与此无关。