当我尝试将其转换为Typescript中的类型时,Automapper-TS映射对象是空的



我有以下类:

class testClass
{
    public text: string;
}

我使用automapper-ts创建以下映射:

AutoMapper.createMap('source', 'dest')
            .convertToType(testClass);

然后进行我的映射:

this.newObject = AutoMapper.map('source', 'dest', this.anotherObjectWithSameProperties);

但是this.newObject始终是一个空的testClass对象。如果我删除以下行:

.convertToType(testClass);

然后,该属性将按预期映射到this.newObject,但this.newObject的类型将为Object而不是testClass

如何使用autoMapper-ts将对象映射到另一个对象,但是将新对象作为必需的类型?

update

automapper-ts文档通过单位测试显示此方法,但此单元测试明确指定了映射:

.forMember('property', (opts: AutoMapperJs.IMemberConfigurationOptions) => { opts.mapFrom('ApiProperty'); })

如果我使用我的 text属性这样做:

AutoMapper.createMap('source', 'dest')
    .forMember('text', 'text');
    .convertToType(testClass);

然后,我的实现按预期工作,但这首先是使用自动应用程序的全部点。

更改此

class testClass
{
    public text: string;
}

to

class testClass
{
    public text: string='';
}

您需要初始化类中的所有属性

您在地图之后投射到指定的类型:

this.newObject = AutoMapper.map('source', 'dest', this.anotherObjectWithSameProperties) as testClass;

this.newObject = <testClass> AutoMapper.map('source', 'dest', this.anotherObjectWithSameProperties);

相关内容

  • 没有找到相关文章

最新更新