我有以下javascript对象
venue = {
id: 0,
name: '',
venueimage_set: [
{
imageurl: '',
},
]...
然后在我的代码中我改变了对象:
this.venue.venueimage_set[+image] = this.venue.venueimage_set[+image].imageurl;
要使图像查看器工作,我需要图像的网址而不是图像网址所属的关键字。所以我在键中取了什么,并将数组位置设置为键值,即图像URL。
然后我收到了这个声音。
ERROR in mainroot/venuepage/venuepage.component.ts(171,25): error TS2322: Type 'string' is not assignable to type '{ imageurl: string; }'.
mainroot/venuepage/venuepage.component.ts(175,127): error TS2339: Property 'imageurl' does not exist on type 'string'.
我希望打字稿忽略输入,让我这样做。我怎么样?
答案 0 :(得分:2)
以下是您尝试执行的操作的类型安全版本:
function toVenue<T>({id, name, venueimage_set}: T) {
return {
id,
name,
venueImageSet: venueimage_set.map(el => el.imageurl)
};
}
设置venue
:
const venue = toVenue({
id: 0,
name: '',
venueimage_set: [{
imageurl: '',
}]
});
这里是不安全的版本(请不要这样做):
this.venue.venueimage_set[+image] = this.venue.venueimage_set[+image].imageurl as any;