问答

node中有没有什么插件能dto转实体类的?

作者:admin 2021-10-13 我要评论

如题,希望类型转换后的对象能只有自己本身的属性,不保留多余属性如 // 转换的类class A { text:string id:number}class ADTO { text:string other:string }let...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

如题,希望类型转换后的对象能只有自己本身的属性,不保留多余属性如

// 转换的类
class A {
    text:string
    id:number
}

class ADTO {
    text:string
    other:string
 
}



let aDTO = new ADTO()
aDTO.text = 'text'
aDTO.other = "other"

// 希望有个transfrom插件 
// 让a是A类型的,内容是 {text:'text'},得到从aDto相同的属性,不保留不同的属性
const a = transform(A, new ADTO())

###

可以定义一个接口来负责传输目标类,另外有点麻烦的地方在于因为要引用Object.keys(),得给目标类的各个属性加上一个默认值:

interface TransformInterface {
}

class A {
  text:string = null
  id:number = null
}

class B {
  other:string = null
  id:number = null
}

class ADTO {
  text:string
  other:string
}

let aDTO = new ADTO()

aDTO.text = 'text1'
aDTO.other = "other1"

function transform(param: ADTO, tmp: TransformInterface): any {
  Object.keys(tmp).forEach(key=>tmp[key]=param[key]);
  return tmp
}

let objA = transform(aDTO, new A())
let objB = transform(aDTO, new B())

console.log(objA)
console.log(objB)

希望能帮助到你。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • node中有没有什么插件能dto转实体类的

    node中有没有什么插件能dto转实体类的

  • macos开发如何获取系统内部声音?

    macos开发如何获取系统内部声音?

  • vue项目 session无法存储

    vue项目 session无法存储

  • Java中操作数栈是不是汇编中代码段执行

    Java中操作数栈是不是汇编中代码段执行

腾讯云代理商
海外云服务器