来自映射键的对象的typescript接口(项、';id';)
我正在使用react、Redux,并试图在组件上使用typescript。在reducer中,我使用lodash贴图键从以下位置展平对象阵列:来自映射键的对象的typescript接口(项、';id';),typescript,Typescript,我正在使用react、Redux,并试图在组件上使用typescript。在reducer中,我使用lodash贴图键从以下位置展平对象阵列: [ {id:1, blah blah} {id:2, blah blah} ] to: { "1", {id:1, blah blah}, "2", {id:2, blah blah} } 这有助于减少,因为我不玩数组游戏 问题:如何在typescript界面中定义展平的对象 更多详细信息 我有一个Itodo
[
{id:1, blah blah}
{id:2, blah blah}
]
to:
{
"1", {id:1, blah blah},
"2", {id:2, blah blah}
}
这有助于减少,因为我不玩数组游戏
问题:如何在typescript界面中定义展平的对象
更多详细信息
我有一个Itodo的界面:
export interface ITodo {
id:number;
subject:string;
body:string;
status: number;
result:number;
}
在我的reducer中,我使用lodash mapKeys来更改它,这样我就可以得到一系列以id作为属性名的属性,而不是数组。(见下文)
我如何创建一个接口来为我的react组件表达这一点
const response =
[
{
"id": 1,
"subject": "subject a",
"body": "body a",
"status": 0,
"result": 0,
"delete": null
},
{
"id": 2,
"subject": "subject b",
"body": "body b",
"status": 2,
"result": 2,
"delete": null
},
{
"id": 3,
"subject": "subject c",
"body": "body c",
"status": 2,
"result": 2,
"delete": null
}
]
const mapped = _.mapKeys(response,'id')
console.log (JSON.stringify(mapped,null,2)
{
"1": {
"id": 1,
"subject": "subject a",
"body": "body a",
"status": 0,
"result": 0,
"delete": null
},
"2": {
"id": 2,
"subject": "subject b",
"body": "body b",
"status": 2,
"result": 2,
"delete": null
},
"3": {
"id": 3,
"subject": "subject c",
"body": "body c",
"status": 2,
"result": 2,
"delete": null
}
}
一般来说,我会:
export interface ITodo {
id:number;
subject:string;
body:string;
status: number;
result:number;
}
interface ITodoObject {
[key: number]: ITodo
}
一般来说,我会:
export interface ITodo {
id:number;
subject:string;
body:string;
status: number;
result:number;
}
interface ITodoObject {
[key: number]: ITodo
}
尝试使用:
导出接口ITodo{
id:编号;
主题:字符串;
正文:字符串;
状态:编号;
结果:数量;
}
导出类型ITodoMap=记录;
警察todoList:ITodo[]=[
{id:1,主题:,正文:,状态:0,结果:0},
{id:2,主题:,正文:,状态:0,结果:0},
];
常量todoMap:ITodoMap={
1:{id:1,主题:,正文:,状态:0,结果:0},
2:{id:2,主题:,正文:,状态:0,结果:0},
};
尝试使用:
导出接口ITodo{
id:编号;
主题:字符串;
正文:字符串;
状态:编号;
结果:数量;
}
导出类型ITodoMap=记录;
警察todoList:ITodo[]=[
{id:1,主题:,正文:,状态:0,结果:0},
{id:2,主题:,正文:,状态:0,结果:0},
];
常量todoMap:ITodoMap={
1:{id:1,主题:,正文:,状态:0,结果:0},
2:{id:2,主题:,正文:,状态:0,结果:0},
};
谢谢,但我试图在界面中描述在这种情况下,您可以使用一种类型。接口无法正确描述它。我已经更新了代码片段。谢谢,但我正在尝试在界面中描述。在这种情况下,您可以使用类型。接口无法正确描述它。我已经更新了代码片段。