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