javascript - Typescript:推送在自定义类型数组上不可用

标签 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 应该是一个支持推送操作的 JavaScript 数组。难道我说的不对吗?

最佳答案

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

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

关于javascript - Typescript:推送在自定义类型数组上不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28125758/

相关文章:

angular - 无法获取字符串值的 Observable(angular2/typescript)

javascript - 未捕获的类型错误 : Failed to execute 'createObjectURL' on 'URL' : No function was found that matched the signature provided

javascript - 如果库的实现未与 TS 项目集成,如何使用 d.ts 文件导出的常量类型?

javascript - 如何使用带有 vue js 的计算和 Prop 将事件样式应用于菜单

Java - 从对象数组中删除对象

typescript 扩展基类对象属性

javascript - 将参数传递给 jQuery 选择器

c++ - 数组作为模板参数 : stack or heap?

javascript - 如何在过滤元素期间随机化数组(不过滤数组然后随机化元素)?

javascript - 使用 Open Graph API 在 Facebook 上共享全景 (360°) 图像时出现问题