如何指定由Typescript中的字段索引的对象数组?

时间:2015-08-19 14:08:20

标签: javascript typescript

我到目前为止:

testQuestions: { 
   data: [{ adminTestId: number, 
            adminTestQuestionId: number, 
            questionUId: string, 
            subTopidId: number, 
            title: string }] };

现在我想添加另一个名为dataMap的对象。该对象是通过reduce函数传递数据的结果:

 testQuestions.dataMap = data.reduce((rv, v) => {
            rv[v.questionUId] = v;
            return rv;
        }, {});

有人可以告诉我如何定义(内联)dataMap吗?

testQuestions: { 
   data: [{ adminTestId: number, 
            adminTestQuestionId: number, 
            questionUId: string, 
            subTopidId: number, 
            title: string }],
   dataMap: questionUId: string [{ adminTestId: number, 
            adminTestQuestionId: number, 
            questionUId: string, 
            subTopidId: number, 
            title: string }]

};

我上面已经尝试但是它不正确。希望有人可以在这里提供帮助。

1 个答案:

答案 0 :(得分:0)

你很亲密。首先,为了清晰起见,将对象类型分解为自己的界面。

interface Question {
    adminTestId: number; 
    adminTestQuestionId: number; 
    questionUId: string; 
    subTopidId: number; 
    title: string;
}

这是您在dataMap中寻找的语法。

interface QuestionMap {
    [QuestionUId: string]: Question;
}

一起。

interface TestQuestions { 
    data: Question[];
    dataMap: QuestionMap;
}

var testQuestions: TestQuestions = {
    data: [],
    dataMap: {},
};