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

NestJS中能否在DTO的多个属性中复用同一个枚举?

在NestJS DTO中复用同一个枚举完全可行

你这种用法不仅没问题,反而是值得推荐的最佳实践。

枚举的核心作用就是定义一组固定的可选值集合,当多个属性的可选范围完全一致时,复用同一个枚举能:

  • 减少重复代码,避免多次定义相同的枚举值
  • 统一维护逻辑,后续如果需要修改可选值,只需要改一处就行
  • 保持代码风格的一致性

另外给你个小优化建议:把属性的类型从string改成Answer,这样TypeScript能提供更强的类型检查,编译阶段就能发现传入非枚举值的错误,代码会更健壮:

enum Answer {
  YES = 'YES',
  NO = 'NO',
}

export class SampleDTO {
  @IsEnum(Answer)
  @IsOptional()
  isMultiColured: Answer = Answer.NO;

  @IsEnum(Answer)
  @IsOptional()
  isBranded: Answer = Answer.NO;
}

那些说这种用法错误的说法没有依据,放心用就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:22:00