我从服务器获取一些数据,然后将其解析为TypeScript类。我正在尝试使用一些继承 - 每个类都需要能够报告其类型。 这是如何工作的:
这是基类
import { PageElementType } from './page-element-type'
export class PageElement {
pageElementType: PageElementType;
constructor(aPageElementType: PageElementType) {
this.pageElementType = aPageElementType;
}
}
这是派生类
import { PageElement } from './page-element.model'
import { PageElementType } from './page-element-type'
export class Metadata extends PageElement {
id: number;
body: string;
constructor(){
super(PageElementType.metadata);
}
}
这是我调用来解析数据的服务函数
getExam(){
let exam = this.http.get('http://orangeberry.hopto.org/api/Exam/1')
.map((response:Response) => <Exam>response.json())
.do(data => console.log(data));
return exam;
}
好像我得到了某种简单的物体。我想要实际遵循类定义的有意义的功能对象。在我的案例中,实现这一目标的最简单,最直接的方法是什么?
答案 0 :(得分:1)
强制转换只是静态代码分析的一个提示,但在运行时没有任何影响。
如果您希望该值成为类的实例,则需要自己创建这样的实例:
.map((response:Response) => new Exam(response.json()))
Exam
类的构造函数将JSON分解为其属性。