迭代接口的接口元素

Iterate over an interface element of an Interface

假设我有接口:

export interface Animals {
   animals: Animal[]
};

export interface Animal {
    name: string,
    age: number
};

而且我希望迭代 Animals 中的动物 属性。这是我试过的代码假设我有有效的 JSON:

Animals: Animals = JSONObject.animals;
Animals.animals.forEach((animal, index) => {
    console.log(`Animal Number ${index + 1}`);
    console.log(animal);
});

我收到以下错误 TypeError: Cannot read properties of undefined (reading 'forEach')

编辑: JSON 的形式是,

"animals": [
    {
        "name":"Cat",
        "age":12
    },
    {
        "name":"Dog",
        "age":7
    }
]
const Animals: Animals = JSONObject.animals;
Animals.animals.forEach(/* ... */)

您正在钻取 .animals 两次。一次在第一个作业中,一次在第二行。

你只想做一次。

const Animals: Animals = JSONObject;
Animals.animals.forEach(/* ... */)