我到目前为止:
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 }]
};
我上面已经尝试但是它不正确。希望有人可以在这里提供帮助。
答案 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: {},
};