首页 > 解决方案 > Angular 8将未知数量的对象键映射到模型中

问题描述

我正在尝试为以下对象创建模型,特别是GroupedMenu. 分组菜单中列出的类别是动态的,在这种情况下,它们是墨西哥卷饼和甜点,但在另一个调用中,它可能是比萨饼、饮料、炸玉米饼、辣酱玉米饼馅。

{
    "name": "Taco Taco",
    "address": "123 somewhereville",
    "groupedMenu": {
        "burritos": [
            {
                "name": "good burrito",
                "category": "burritos",
                "price": "1.59$",
                "description": "It's a burrito, ok?"
            }
        ],
        "desserts": [
            {
                "name": "cinnamonStick",
                "category": "desserts",
                "price": "$5.00",
                "description": "Cinnamon is healthy, try a spoonful."
            }
        ]
    },
}

到目前为止,这是我形成模型的方式:

export interface Restaurant {
    name: string;
    address: string;
    groupedMenu: GroupedMenu;
}

interface GroupedMenu {
    [key: string]: MenuItem;
}

export interface MenuItem {
    name: string;
    description: string;
    img: string;
    price: string;
}

这似乎适用于我的用例,但我不确定它是否是正确的实现。

我应该如何建模GroupedMenu,以便它处理具有未知名称的动态数量的对象键(例如墨西哥卷饼、甜点、意大利面、面、somethingRandom)。或者我的实现是否正确?

标签: javascriptangulartypescript

解决方案


这对于动态键名来说是相当标准的。


推荐阅读