【发布时间】:2019-03-18 14:00:17
【问题描述】:
我对 Typescript 完全陌生,并且已经能够在其他领域取得一些进展,但我正在努力为具有“taskName”和“totalTaskHours”的深度嵌套对象创建接口。数据如下所示:
[
{
"20229622": [
{
"taskName": "Project Management",
"totalTaskHours": "1589.4"
},
{
"taskName": "Marketing",
"totalTaskHours": "1306.8"
},
{
"taskName": "Design",
"totalTaskHours": "212.4"
},
{
"taskName": "Programming",
"totalTaskHours": "415.8"
}
]
},
{
"20229623": [
{
"taskName": "Project Management",
"totalTaskHours": "980.1"
},
{
"taskName": "Marketing",
"totalTaskHours": "717.3"
},
{
"taskName": "Design",
"totalTaskHours": "468.9"
}
]
},
{
"20229624": [
{
"taskName": "Programming",
"totalTaskHours": "5930.1"
},
{
"taskName": "Project Management",
"totalTaskHours": "997.2"
},
{
"taskName": "Marketing",
"totalTaskHours": "2108.69"
},
{
"taskName": "Design",
"totalTaskHours": "529.2"
}
]
}
]
我试图深入了解嵌套数组中的对象,但每次都会出错。
我尝试过以下方法(显然是错误的):
interface TaskItem {
taskName: string;
totalTaskHours: string;
}
interface TaskItemArray {
[key:string]: {
[key:string]: TaskItem[];
};
}
interface TaskBreakdownSummedByCategory {
[key:string]: TaskItemArray[];
}
我也试过以下,但数据太浅了:
interface TaskItem {
taskName: string;
totalTaskHours: string;
}
interface TaskBreakdownSummedByCategory {
[key:string]: TaskItem;
}
有人能很快帮我解决这个问题吗?我仍在学习,但基本教程并没有真正深入嵌套对象。谢谢!
【问题讨论】:
-
这是一个非常不幸的数据结构(那些具有不同属性名称的对象)。您可以选择更改它吗?
-
很遗憾,我没有更改选项。它是来自 API 调用的响应 JSON 对象。
标签: typescript