javascript - 将 JSON 对象数组分配给 Angular/Typescript 接口(interface)数组

标签 javascript json angular typescript

目前,这有效并且在运行时没有给出我的错误,但我的文本编辑器给我一个错误,指出类型“CategoryInterface []”上不存在属性“类别”(在 response.categories 所在的行分配给变量)所以我不确定我做的事情是否正确。

    public categories: CategoryInterface[];

          .subscribe((response: CategoryInterface[]) => {
          this.categories = response.categories;
          console.log(this.categories);
      });

我的后端返回这个:

{
"categories": [
    {
        "categoryId": 1,
        "name": "Important",
        "description": "This category is important.",
        "order": 1,
        "createdBy": null,
        "createdAt": "2017-11-25 12:09:04",
        "updatedBy": null,
        "updatedAt": "2018-01-17 23:53:25",
        "categoryBoards": [
            {
                "categoryBoardId": 1,
                "categoryId": 1,
                "name": "Announcements",
                "description": null,
                "order": 2,
                "createdBy": null,
                "createdAt": "2017-11-25 12:09:49",
                "updatedBy": null,
                "updatedAt": "2018-01-18 00:09:02"
            },
            {
                "categoryBoardId": 23,
                "categoryId": 1,
                "name": "Rules",
                "description": null,
                "order": 1,
                "createdBy": null,
                "createdAt": "2018-01-18 00:08:57",
                "updatedBy": null,
                "updatedAt": "2018-01-19 00:05:51"
            }
        ]
    }
]

最佳答案

你正试图将你的 api 响应转换到一个 CategoryInterface 数组,但事实并非如此,你最好像这样使用你的订阅方法:

.subscribe((response: any) => {
    this.categories = <CategoryInterface[]> response.categories;
    console.log(this.categories);
});

这是需要转换为 CategoryInterface[] 的 API 响应类别

奖励:angular 样式指南注意到您需要声明类而不是接口(interface),并且您不必在类名后加上 Interface,因此只需将您的 CategoryInterface 命名为 Category。

关于javascript - 将 JSON 对象数组分配给 Angular/Typescript 接口(interface)数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48647106/

相关文章:

javascript - 如何使用 JavaScript 使鼠标悬停时图像变大?

sql - 使用嵌套 JSON 数组上的过滤器进行选择

json - 如何将 JSON 文件保存到 csv 中

Angular 2 在不使用 ViewContainerRef 的情况下将组件动态插入到特定的 DOM 节点中

javascript - 数组拼接不会触发 ngOnChange

javascript - 添加接触计数器 knockout

php - 将 PHP 变量传递给 jQuery 整数

javascript - 三个JS遍历的回调

json - 如何在perl中检查hash key是否包含JSON?

angular - 如何在 Angular 7 的路由保护子句中访问路由参数?