【发布时间】:2018-12-13 18:58:10
【问题描述】:
我们有各种对我们的服务的 Http 调用,它们返回一组对象。在我们的 Angular 应用程序中,如果指定,typescript 会将这些解释为适当的类型,例如 Person:
export class Person{
public firstName: string;
public lastName: string;
public salutation: string;
}
假设我希望能够轻松地为这个用户构建一个问候字符串,但我想成为一个优秀的程序员并且只做一次而不是多次。所以我创建了一个 getter 来检索它:
export class Person{
public firstName: string;
public lastName: string;
public salutation: string;
public get greeting(): string {
return salutation + " " + firstName + " " + lastName;
}
}
然而,当 typescript 反序列化它时,它缺少了 greeting 属性的原型(它被设置为 undefined)。我知道打字稿正在将 JSON 对象映射到它拥有的类,并且映射对象上不存在任何丢失的字段/属性(如果调用则返回未定义)。解决此问题的最佳方法是什么?
作为我们如何调用服务的示例:
this.authHttp.post(this.url, user, params).then(
(res: Person) => {
console.log(res);
console.log(res.greeting);
}
);
【问题讨论】:
标签: angular typescript angular5 angular-http