[英]set type of any of javascript object property
我有以下javascript對象
venue = {
id: 0,
name: '',
venueimage_set: [
{
imageurl: '',
},
]...
然后在我的代碼中稍后更改對象:
this.venue.venueimage_set[+image] = this.venue.venueimage_set[+image].imageurl;
為了使圖像查看器正常工作,我只需要圖像的url,而不是圖像url所包含的鍵。 因此,我將密鑰中的內容作為變量並將數組位置設置為密鑰值(圖像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'.
我希望打字稿忽略打字,讓我來做。 我怎么會
這是您要執行的操作的類型安全版本:
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.