Búsqueda de sitios web

javascript - Typescript: push no disponible en array con tipo personalizado


Usando Javascript con Typescript (v1.4.1) tengo un tipo personalizado de la siguiente manera:

interface WordDataForQuestion {
    question : {
        id : number;
        vocab : string;
        comment : string;
    };
    possibleAnswers : {
        [index : number] : {
            id : number;
            vocab : string;
            comment : string;
        }
    };
}

Ahora quiero agregar un elemento en el arreglo possibleAnswers

nextWordData.possibleAnswers.push(
    {
        id : vocabs[index].id,
        vocab : vocabs[index].voc_t,
        comment : vocabs[index].com_t
    }
);

pero me da el siguiente error:

exercise.ts(69,42): error TS2339: Property 'push' does not exist on type '{ [index: number]: { id: number; vocab: string; comment: string; }; }'.

No entiendo qué está mal: possibleAnswers debería ser un arreglo de JavaScript aquí que soporte la operación push. ¿No estoy en lo cierto?

Respuesta #1

Estás casi allí. Lo definiste como un objeto con un indexador, no como un arreglo, mira el ejemplo a continuación

possibleAnswers : {
        id : number;
        vocab : string;
        comment : string;
}[];