使用typescript上的接口推送项目

时间:2016-10-24 11:08:40

标签: javascript arrays typescript interface

我需要一些关于打字稿中的接口的帮助

我有3个界面:

export interface HomeMenu {
    [name: string]: MenuItem;
}

export interface MenuItem {
    title: string;
    route: string;
    homeMenu?: HomeMenu;
}

export interface Menu {
    homeMenu: HomeMenu;
}

现在我这样做:

var json: Menu = {
    "homeMenu": {
        "aname1": {
            "title": "text",
            "route": "myroute"
        },
        "aname2": {
            "title": "text",
            "route": "myroute",
            "homeMenu": {
                "aname21": {
                    "title": "text",
                    "route": "myroute"
                },
                "aname22": {
                    "title": "text",
                    "route": "myroute"
                }
            }
        },
        "aname3": {
            "title": "text",
            "route": "myroute"
        }
    }
}
json.homeMenu["aname2"].title = "myTitle";

但是现在我怎么能在HomeMenu中推出一个新项目?我试图用Array扩展HomeMenu接口,但我有关于索引签名的错误,Array想要一个索引(名称)而不是字符串的数字
我检查了Typescript,一些帖子,我还没有找到答案 或者也许是另一个在homeMenu对象上有推送功能的解决方案? 如果有人可以帮助我 提前致谢

1 个答案:

答案 0 :(得分:0)

怎么样:

json.homeMenu["aname4"] = {
    title: "title 4",
    route: "route4"
};