来自映射键的对象的typescript接口(项、';id';)

来自映射键的对象的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

我正在使用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的界面:

  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},
};

谢谢,但我试图在界面中描述在这种情况下,您可以使用一种类型。接口无法正确描述它。我已经更新了代码片段。谢谢,但我正在尝试在界面中描述。在这种情况下,您可以使用类型。接口无法正确描述它。我已经更新了代码片段。