序列化包含不同类型的数组

Serializing an array containing different types

我在打字稿中有一个数组,如下所示: const baseElements: IBaseElement[]

A IBaseElement 包含一些内容:

export interface IBaseElement{
a: number;
b: string;
}

两个 类 工具 IBaseElement:

export class A implements IBaseElement{
}

export class B implements IBaseElement{
}

Class AB用于baseElements数组(baseElements.push(A)....)

执行此操作时,我始终可以使用 instanceof 来确定我正在处理的元素是 A 还是 B,但在某些时候这将被序列化到 JSON 并保存在数据库中。

所以我的问题是:当我从数据库取回数据时,我能否区分这两种类型?

如果我的问题不够详尽,请告诉我。 提前致谢。

在某些时候,如果您需要创建 2 个新的 类,那是因为 JSON 架构会与初始界面不同。

基本上这意味着当您要从您的数据库中检索一些 JSON 时,您将需要明确地转换它。例如,如果你使用 Angular + RxJS,你应该以下面的

结尾
return http.get(this.url)
           .map(response => response.json().data as A)

如图angular tutorial