推送带有typescript接口的项目

Push item with interfaces on typescript

本文关键字:接口 项目 typescript      更新时间:2023-09-26

我需要一些关于typescript接口的帮助

我有三个接口:

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中推送一个新项目呢?我试图用数组扩展homenu接口,但我有一个关于索引签名的错误,数组想要一个索引(名称)的数字,而不是字符串
我检查了Typescript,一些帖子,我还没有找到答案或者在homenu对象上使用push函数的另一种解决方案?如果有人能帮我提前感谢

如何:

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