【发布时间】:2019-09-15 10:46:55
【问题描述】:
我还没有找到关于这个问题的可靠答案:
如何将我的 JSON 响应从 HTTP.get 请求转换为我的 Typescript 对象的实例?
搭建舞台:
CLASS =====================
export interface IMyClass {
myClassId: number;
myClassName: string;
myClassDescription: string;
}
export class MyClass implements IMyClass {
public myClassId: number;
public myClassName: string;
public myClassDescription: string;
constructor(
myClassId: number;
myClassName: string;
myClassDescription: string;
) {
this.myClassId = myClassId
this.myClassName = myClassName
this.myClassDescription = myClassName
}
}
SERVICE===============
public getMyClassById(id: number): Observable<MyClass> {
return this.http.get<MyClass>(`${this.apiEndpoint}/myClassId?myClassID=${id}`)
}
我试图弄清楚如何在不利用完整构造函数的情况下做到这一点,因为我的真实模型大约有 12 个属性。我试过 pipe => 将响应映射为 MyClass ,但这似乎也不起作用。
【问题讨论】:
-
我的偏好是坚持使用接口来定义从 api 调用返回的结构,而不是使用具体的类。如果有我想直接与之关联的行为,我只会为模型创建一个新的类实例,这很少见。这减少了代码量,您的 api 调用只是
return this.http.get<IMyClass>(url);
标签: angular typescript inheritance angular7 http-get