我想对请求有效负载应用验证,例如,有字符串类型的字段名称。但名称不是必填字段,但如果存在则必须执行@IsNotEmpty()
我试过这样的
@IsNotEmpty() name?: string
//它不考虑?
可选约束
我想对请求有效负载应用验证,例如,有字符串类型的字段名称。但名称不是必填字段,但如果存在则必须执行@IsNotEmpty()
我试过这样的
@IsNotEmpty() name?: string
//它不考虑?
可选约束
您可以使用@IsOptional()
验证器:
检查给定值是否为空 (
=== null
,=== undefined
),如果是,则忽略属性上的所有验证器。
class-validator有一个@IsOptional()
验证器,您可以将其与您定义的任何其他验证器一起添加,如下所示:
@IsOptional() @IsNotEmpty() name: string;
装饰器是可交换的,因此验证不依赖于验证器的顺序。如果需要验证取决于存在以外的其他内容,则可以使用@ValidateIf()
带有函数参数的 which。
金的回答很好。如果您想将此行为应用于所有可选字段,您也可以skipMissingProperties: true
与验证管道一起使用。