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

发布于 2022-09-12 00:22:40 字数 351 浏览 24 评论 0

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

// 转换的类
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())

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

坏尐絯 2022-09-19 00:22:40

可以定义一个接口来负责传输目标类,另外有点麻烦的地方在于因为要引用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)

希望能帮助到你。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文