У вас есть определенный синтаксис для такого типа структуры данных:
interface Payload {
[key: string]: Orga;
}
interface Orga {
[key: string]: Department;
}
interface Department {
[key: string]: Role;
}
Если вы хотите получить список Orgas, вы должны выполнять итерации по объекту, а не по массиву.
Вы можете сделать это с Object.keys
или в более новых браузерах (или, если у вас есть полифилл), Object.entries
:
const orgas = Object.keys(payload).map(key => payload[key]);
const orgas = Object.entries(payload).map(([key, value]) => value);
Вы также можете использовать функцию генерации - Symbol.iterator
для перебора ваших объектов, но я думаю, что это немного излишне:
const payload = {
orga1: { name: 'orga 1' },
orga2: { name: 'orga 2' },
[Symbol.iterator]: function *() {
for (const key of Object.keys(this)) {
yield this[key];
}
}
};
for (const value of payload) {
console.log(value);
}