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

