打字稿:推送不适用于自定义类型的数组

时间:2015-01-24 13:07:03

标签: javascript arrays typescript

将Javascript与Typescript一起使用(v1.4.1)我有一个自定义类型如下:

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

现在我想推送数组possibleAnswers

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

但是它给了我以下错误:

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

我不明白有什么问题 - possibleAnswers应该是一个支持push-operation的JavaScript数组。我不对吗?

1 个答案:

答案 0 :(得分:3)

你快到了。您确实将其定义为具有索引器的对象。不是数组,请参见下面的示例

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