首页 > 解决方案 > 如何设计响应的打字稿模型?

问题描述

如何在我得到以下响应的打字稿中设计我的模型?

{
    "data":[
            {
                "name": "XYZ",
                "id": "1"
            },
            {
                "name" :"Abc",
                "id": "2"
            }
        ]
}

我尝试了什么:

export class responseModel<T>{
    data:T;
}

export class model{
    name:string;
    id: number;
}

你的建议是什么?所有数据都将作为{ data: THE_DATA_OBJECT }

{
    data: []
}

getInfo(): Observable<responseModel<model[]>> {
    // API HTTP Call
}

标签: angulartypescript

解决方案


类不适合声明表示 HTTP 响应的类型。请改用接口或类型,因为 HTTP 请求产生的反序列化 JSON 值永远不会是类的实例

@Angular StyleGuide
考虑使用数据模型的接口。

export interface Model{
        id: number;
        name: string;
    }

export interface ResponseModel{
         data:Array<Model>;
  }

getInfo(): Observable<responseModel>{
return this._httpClient.get<resposneModel>('url);
}

推荐阅读