我在打字稿中有一个数组,如下所示:
const baseElements: IBaseElement[]
IBaseElement
包含一些stuf:
export interface IBaseElement{
a: number;
b: string;
}
两个类实现IBaseElement
:
export class A implements IBaseElement{
}
export class B implements IBaseElement{
}
A
数组(B
)
baseElements
和baseElements.push(A)....
类
执行此操作时,我始终可以使用instanceof
来确定我正在处理的元素是A
还是B
,但是在某些时候这将被序列化为JSON并保存在数据库中。
所以我的问题是这样的:当我从数据库中获取数据时,是否可以区分这两种类型?
如果我的问题不够详细,请告诉我。 提前谢谢。
答案 0 :(得分:1)
在某些时候,如果您需要创建2个新类,那么JSON模式将偏离初始接口。
基本上这意味着当你要从数据库中检索一些JSON时,你需要明确地转换它。例如,如果您使用的是Angular + RxJS,则应以以下
结束return http.get(this.url)
.map(response => response.json().data as A)
所示