目前,我正在手动(通过代码)在DTO和状态实体之间进行映射。我的意思是:
@Effect({ dispatch: true })
userLogin$: Observable<Action> = this._actions$
.ofType('USER_LOGIN')
.switchMap((action: Action) =>
this._userService.checkPasswd(action.payload.username, action.payload.password)
.map((user: UserDTO) => {
return { type: 'USER_LOGIN_SUCCESS', payload: <IUser>{ id:user.id, cname:user.cname, sname:user.sname, username:user.username } };
})
.catch((err: ApiError) => {
//...
})
);如你所见:
payload: <IUser>{ id:user.id, cname:user.cname, sname:user.sname, username:user.username }我想使用任何映射库或工具来更精确地获取它。尽管如此,任何最佳实践都是足够的。
发布于 2017-03-15 22:16:31
对我们来说,最好的解决方案是使用Typescript装饰器对DTO类进行建模,并自己定义映射规则。这里有一些可以给你指点的东西:
基本上,您需要对类和属性进行注释,以使大多数场景工作起来没有太多麻烦。但是对于高级类型,它可能需要自定义的序列化程序和反序列化程序。这并不难,但需要一些编码。
https://stackoverflow.com/questions/42808865
复制相似问题