【发布时间】:2021-11-08 02:38:18
【问题描述】:
使用 Angular 12
HTTP 服务从后端返回以下响应
Array<{
id: string;
title: string;
created: string;
}>
// Service
public list(): Observable<Array<Item>> {
return this.http.get<Array<Item>>(url);
}
// Component
this.service.list().subscribe(res => {
this.item = res;
});
创建了一个模型类来对响应进行类型转换
export class Item {
id: string;
title: string;
created: string;
get parsedTitle() {
const t = this.title;
// do some parsing on title
return t;
}
}
在 HTML 中,想用parsedTitle 打印解析后的标题,但是什么也没打印。
尝试将 getter 更改为函数 public parsedTitle(){},然后它给出错误,parsedTitle is not a function。
如何将返回的可观察对象类型转换为对象数组中的类实例?
【问题讨论】:
-
您不能对它们进行“类型转换”——TypeScript 在运行时不存在,您需要使用 JSON 中的(香草对象)数据来实例化该类。使用接口来表示 JSON,它只有有数据(没有行为)。可能的欺骗集合:github.com/angular/angular/issues/25401.
标签: angular typescript angular-observable