javascript - Typescript: push finns inte tillgängligt på anpassad typad array
Att använda Javascript med Typescript (v1.4.1) har jag en egen typ enligt följande:
interface WordDataForQuestion {
question : {
id : number;
vocab : string;
comment : string;
};
possibleAnswers : {
[index : number] : {
id : number;
vocab : string;
comment : string;
}
};
}
Nu vill jag lägga till ett element i arrayen possibleAnswers
nextWordData.possibleAnswers.push(
{
id : vocabs[index].id,
vocab : vocabs[index].voc_t,
comment : vocabs[index].com_t
}
);
men det ger mig följande fel:
exercise.ts(69,42): error TS2339: Property 'push' does not exist on type '{ [index: number]: { id: number; vocab: string; comment: string; }; }'.
Jag förstår inte vad som är fel - possibleAnswers borde vara en JavaScript-array här som stöder push-operationen. Har jag inte rätt?
Svar #1
Du är nästan där. Du definierade det som ett objekt med en indexer. Inte som en array, se exempel nedan
possibleAnswers : {
id : number;
vocab : string;
comment : string;
}[];
