我有一个带有数组类型属性成员的类,数组中的一个项目可以是多种类型,例如 MetaViewDatalinked 或 MetaViewContainer,请参见下面的示例
class MetaViewContainer{
children: (MetaViewDatalinked | MetaViewContainer)[];
}
class MetaViewDatalinked{
id: string;
}
我想使用 class-transformer ( plainToClass(MetaViewContainer, json)
) 用它的属性来初始化这个类。
如果我有没有数组的类,见下文,我会使用@Type
class MetaViewContainer{
@Type((typeHelpOptions: TypeHelpOptions) => {
if (typeHelpOptions.object.container)
return MetaViewContainer;
return MetaViewDatalinked;
})
child: MetaViewDatalinked | MetaViewContainer;
}
无论属性的类型如何,该问题仅@Type
被调用一次:一个类或一个类数组,从而创建一个单一类型的数组(如果属性是数组)。
任何解决问题的想法都非常感谢。