如何摆脱传递到then
承诺的数据结构的Typescript错误?
我收到以下错误:
财产'计数'类型' {}'
上不存在
以下代码:
this.userData.getSocialLinks(this.navParams.get('image_owner_id')).then(socialLinks => {
var i = 0;
for (i=0; i < socialLinks.count; i++) {
if (socialLinks.results[i].social_type == 'TW') {
this.profile.twitter = socialLinks.results[i].social_address;
this.isExistingTW = true;
this.twEntryID = socialLinks.results[i].id;
}
else if (socialLinks.results[i].social_type == 'IN') {
this.profile.instagram = socialLinks.results[i].social_address;
this.isExistingIN = true;
this.inEntryID = socialLinks.results[i].id;
}
}
});
我猜我必须以某种方式定义socialLinks
,但无法解决问题。
答案 0 :(得分:5)
标准方法是创建某种接口并将其用作类型:
sview.contentSize = CGSizeMake(ScreenWidth, 1000);
如果有更明确的T是什么,例如// describe what is coming
export interface IData<T> {
count: number;
results: T[];
}
// use that IData
this.userData
.getSocialLinks(this.navParams.get('image_owner_id'))
.then(( socialLinks: IData<any>) => {
...我们可以使用IPerson