#javascript #arrays #typescript #interface
#javascript #массивы #typescript #интерфейс
Вопрос:
Мне нужна некоторая помощь по интерфейсам в typescript
У меня есть 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? Я попытался расширить интерфейсы HomeMenu с помощью массива, но у меня ошибка в подписи индекса, массиву требуется число для индекса (name), а не строка
Я проверил Typescript, некоторые сообщения, и я не нашел ответа
Или, может быть, другое решение для создания функции push в объекте homeMenu?
Если кто-нибудь может мне помочь
Заранее спасибо
Ответ №1:
Как насчет:
json.homeMenu["aname4"] = {
title: "title 4",
route: "route4"
};