[英]Conditionally failing validation using class-validator
使用class-validation
库和下面的示例中的条件验证,如果在tool
属性为Tool.TapeMeasure
时为woodScrews
属性指定了值,我希望验证失败。 我真的找不到任何能做到这一点的东西。
import { IsEnum, IsNumber, Min, ValidateIf } from 'class-validator'
export enum Tool {
Drill = 'Drill',
TapeMeasure = 'Tape Measure'
}
export class ToolBox {
@IsEnum(Tool)
public tool: Tool;
@ValidateIf(toolBox => toolBox.tool === Tool.Drill)
@IsNumber()
@Min(5)
public woodScrews?: number;
}
该方法仅适用于忽略验证,即使用您的 dto,您验证 class ToolBox 具有类型为 number 的属性 woodScrews 并且仅当属性 Tool 等于 Drill 时,其最小值为 5,否则您将忽略验证。
我不确定您是否可以使用类验证器解决此问题,但您可以创建一些自定义管道并应用您自己的逻辑。
更多信息在这里: https://docs.nestjs.com/pipes
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.