如果您不知道传递给数组的内容如何映射?

时间:2019-07-20 03:57:48

标签: reactjs typescript

很抱歉,我的格式设置有误,我从未使用过stackoverflow,但我一直在努力解决问题,希望有人能提供一些清晰度。

我正在尝试构建一个显示个人最喜欢的食物的应用程序。该程序将为每个人生成一个表格,该人的姓名在顶部,下方是他们最喜欢的食物的列表。它需要接受任何数量的食物。

如果我只有预定的字段(喜欢的水果/蔬菜/甜点),我可以将信息映射出来,但是我不想依靠使用“ favFruit:user.favFruit”,因为这将我限制在多少个项目上我已经在界面中定义了。

interface User {
    name: string;
    username: string;
    favourites: ???;  // maybe Array<any>?  
}

users.map(user => {
    user.name = [{ name: user.name, username: user.username }];
    user.favourites = [ { ??? } ];
    return user;
});

我当然可以做与映射用户名/用户名时相同的操作,但是对于此示例,我不想假设我知道用户的“收藏夹列表”中有多少项,或者是什么确实是。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果您确定对象的形状(例如,

),则可以定义一个单独的interface Favorite
interface Favorite {
  type: string;
  name: string;
}

然后,您可以在Array<Favorite>界面中使用User

但是,如果无法确定物体的形状,那么Array<any>可以为您省去很多麻烦。