首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ngrx的映射工具

ngrx的映射工具
EN

Stack Overflow用户
提问于 2017-03-15 19:47:33
回答 1查看 154关注 0票数 0

目前,我正在手动(通过代码)在DTO和状态实体之间进行映射。我的意思是:

代码语言:javascript
复制
@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) => {
        //...
      })
);

如你所见:

代码语言:javascript
复制
payload: <IUser>{ id:user.id, cname:user.cname, sname:user.sname, username:user.username }

我想使用任何映射库或工具来更精确地获取它。尽管如此,任何最佳实践都是足够的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-15 22:16:31

对我们来说,最好的解决方案是使用Typescript装饰器对DTO类进行建模,并自己定义映射规则。这里有一些可以给你指点的东西:

json-typescript-mapper

TypedJSON

基本上,您需要对类和属性进行注释,以使大多数场景工作起来没有太多麻烦。但是对于高级类型,它可能需要自定义的序列化程序和反序列化程序。这并不难,但需要一些编码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42808865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档