不能在 nestjs 中同时使用 IsOptional 和 Transform 装饰器
Can't use IsOptional and Transform decorator at the same time in nestjs
我正在尝试在嵌套 dto class 中创建一个具有默认值的可选字段。到目前为止,我已经为我的特定字段完成了此操作(如果该字段存在,则使用该字段,否则使用 2
):
@Transform((value) => value || 2)
@IsOptional()
@IsNumber()
monitorBackgroundInterval: number
我仔细检查了验证管道是否在我的应用程序中全局使用,因此在使用我的路由时会调用转换:
app.useGlobalPipes(new ValidationPipe({ transform: true }))
但我认为 @Optional
装饰器正在取代 @Transform
装饰器,我已尝试在转换中登录,但未调用它。
在尝试我的路线并记录 dto 时,该字段根本没有出现,因此转换无法正常工作。
我知道这是可能的,所以我很确定这是我的错误。
是否有特定的顺序需要遵守才能使其发挥作用?我错过了什么吗?
感谢您的宝贵时间!
由于您将默认值设置为 2,这意味着该字段将始终有一个值,因此不需要 @IsOptional。
我正在尝试在嵌套 dto class 中创建一个具有默认值的可选字段。到目前为止,我已经为我的特定字段完成了此操作(如果该字段存在,则使用该字段,否则使用 2
):
@Transform((value) => value || 2)
@IsOptional()
@IsNumber()
monitorBackgroundInterval: number
我仔细检查了验证管道是否在我的应用程序中全局使用,因此在使用我的路由时会调用转换:
app.useGlobalPipes(new ValidationPipe({ transform: true }))
但我认为 @Optional
装饰器正在取代 @Transform
装饰器,我已尝试在转换中登录,但未调用它。
在尝试我的路线并记录 dto 时,该字段根本没有出现,因此转换无法正常工作。
我知道这是可能的,所以我很确定这是我的错误。
是否有特定的顺序需要遵守才能使其发挥作用?我错过了什么吗?
感谢您的宝贵时间!
由于您将默认值设置为 2,这意味着该字段将始终有一个值,因此不需要 @IsOptional。