Angular 7 HttpClient 响应类型为 class

Angular 7 HttpClient response type as class

我正在尝试使用 httpclient 从 http get 调用转换我的响应,并创建我创建的 class 的实例。

问题
HttpClient 似乎没有使用其响应对象的属性创建我的 class 的新实例。请帮忙!

我尝试创建一个 class vs 界面。不知道我还需要在这里做什么。

我的Class

export class Escalation {    
  constructor(private NAME: string, private DESCRIPTION: string) { }    

  public get name() {    
    return this.NAME;    
  }

  public set name(name: string) {    
    this.NAME = name;    
  }

  public get description() {    
    return this.DESCRIPTION;    
  }

  public set description(description: string) {    
    this.DESCRIPTION = description;    
  }    
}

我的服务

public getEscalation(escalationName) {    
    return this.http.get(`${this.globals.baseRestUrl}/companies/escalations/${escalationName}`);    
  }

我的组件

public escalation: Escalation = new Escalation('', '');    

this.companiesService.getEscalation(escalationName).subscribe(    
        (escalationResponse: Escalation) => this.escalation = {    
          ...escalationResponse    
        }, (error: any) => {       
          console.log(error);   
        }    
      );

预期结果
我原以为我的回复会在 api 回调时强制转换为类型升级(我的 class)。

实际结果
api returns 像这样的对象:

{    
    NAME: 'Escalation 1',    
    DESCRIPTION: 'This is a test description'    
}   

但最终 this.escalation returns 未定义

希望我解释得很好。如果您需要更多信息,请告诉我!

(escalationResponse: Escalation) 行代码并非真正用于 cast 来自 HttpClient 的响应,而是 infer它是什么类型的。

您可以考虑将代码调整为 this.escalation = new Escalation(escalationResponse.NAME, escalationResponse.DESCRIPTION)

我相信this.escalation = { ...escalationResponse }实际上只是在解构属性。