You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将NestJS中的DTO类A与B合并为联合类型C?

问题解答

当然可行,这根本不需要依赖NestJS的映射类型,用TypeScript原生的类型别名就能轻松搞定。

具体操作步骤很简单:

  • 先给A和B的联合类型定义一个别名C:
    type C = A | B;
    
  • 之后在函数foo里直接用C作为返回类型或逻辑处理的类型即可:
    function foo(): C {
      // 你的业务逻辑,返回A或B的实例都符合类型要求
      if (someCondition) {
        return new A();
      } else {
        return new B();
      }
    }
    

哪怕你的DTO类用了class-validator或者NestJS的装饰器,也完全不影响这个用法——TypeScript的类型别名对类的联合类型支持非常完善。NestJS的映射类型主要是用来处理类的继承、部分属性提取这类场景,联合类型属于TypeScript原生能力,直接用原生语法就足够了。

内容的提问来源于stack exchange,提问作者Dmo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:34:49