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;
}[];