【问题标题】:Can't use IsOptional and Transform decorator at the same time in nestjs不能在nestjs中同时使用IsOptional和Transform装饰器
【发布时间】:2020-09-24 10:45:53
【问题描述】:

我正在尝试在嵌套 dto 类中创建一个具有默认值的可选字段。到目前为止,我已经为我的特定字段完成了此操作(如果该字段存在,则使用该字段,否则使用 2):

@Transform((value) => value || 2)
@IsOptional()
@IsNumber()
monitorBackgroundInterval: number

我已经仔细检查验证管道是否在我的应用程序中全局使用,因此在使用我的路由时会调用转换:

app.useGlobalPipes(new ValidationPipe({ transform: true }))

但我认为@Optional 装饰器正在使用@Transform 装饰器,我尝试登录转换并没有调用它。 尝试我的路线并记录 dto 时,该字段根本没有出现,因此转换无法正常工作。

我知道这是可能的,所以我很确定这是我的错误。

是否有特定的顺序需要遵守才能使其发挥作用?我错过了什么吗?

感谢您的宝贵时间!

【问题讨论】:

    标签: nestjs dto class-validator class-transformer


    【解决方案1】:

    由于您设置了默认值 2,这意味着该字段将始终有一个值,因此不需要 @IsOptional。

    【讨论】:

      猜你喜欢
      • 2019-09-10
      • 1970-01-01
      • 2020-11-01
      • 2012-04-11
      • 2021-12-30
      • 2021-11-25
      • 2018-07-27
      • 2020-03-04
      • 2021-01-20
      相关资源
      最近更新 更多