如何将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
相关产品推荐
相关产品推荐

