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”时使用了对象
,这就是我所说的“我以后还必须对对象进行解构”的意思。是的,你可以在参数赋值或以后对其进行解构。。。但无论如何,最初的错误与此无关。