typescript - Egenskapen 'count' finns inte på typen '{}'
Hur blir jag av med Typescript-fel för datastrukturen som skickas in i ett then-löfte?
Jag får följande fel:
Egenskapen 'count' finns inte på typen '{}'
För följande kod:
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;
}
}
});
Jag gissar att jag måste definiera socialLinks på något sätt men kan inte lista ut var.
Svar #1
Det standardmässiga sättet är att skapa någon form av gränssnitt och använda det som en typ:
// 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>) => {
Om det är mer tydligt vad T är, t.ex. IPerson... kan vi använda IData<IPerson>
Lek med det här
