【发布时间】:2021-12-02 23:40:47
【问题描述】:
我的类具有数组类型的属性成员,数组中的项目可以是多种类型,例如 MetaViewDatalinked 或 MetaViewContainer,请参见下面的示例
class MetaViewContainer{
children: (MetaViewDatalinked | MetaViewContainer)[];
}
class MetaViewDatalinked{
id: string;
}
我想使用类转换器 (plainToClass(MetaViewContainer, json)) 来初始化类及其属性。
如果我有没有数组的类,见下文,我会使用@Type
class MetaViewContainer{
@Type((typeHelpOptions: TypeHelpOptions) => {
if (typeHelpOptions.object.container)
return MetaViewContainer;
return MetaViewDatalinked;
})
child: MetaViewDatalinked | MetaViewContainer;
}
问题是@Type 仅被调用一次,无论属性的类型如何:一个类或一个类数组,因此创建了一个单一类型的数组(如果属性是数组)。
非常感谢任何解决问题的想法。
【问题讨论】:
标签: javascript arrays typescript class-transformer