繁体   English   中英

使用类验证器有条件地失败验证

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM