序列化包含不同类型的数组
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 A
和B
用于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)
我在打字稿中有一个数组,如下所示:
const baseElements: IBaseElement[]
A IBaseElement
包含一些内容:
export interface IBaseElement{
a: number;
b: string;
}
两个 类 工具 IBaseElement
:
export class A implements IBaseElement{
}
export class B implements IBaseElement{
}
Class A
和B
用于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)