在 nestjs 中使用 class-validator 对可选参数进行验证?
Validation on optional Parameter using class-validator in nestjs?
我想对请求有效负载应用验证,比如有字符串类型的字段名称。但名称不是必填字段,但如果存在,则必须执行 @IsNotEmpty()
我试过这样的
@IsNotEmpty() name?: string
// 它不考虑 ?
可选约束
您可以使用 @IsOptional()
验证器:
Checks if given value is empty (=== null
, === undefined
) and if so, ignores all the validators on the property.
Kim 的回答很棒。如果您想将此行为应用于所有可选字段,您还可以将 skipMissingProperties: true
与验证管道一起使用。
class-validator 有一个 @IsOptional()
验证器,您可以将其与您定义的任何其他验证器一起添加,如下所示:
@IsOptional() @IsNotEmpty() name: string;
装饰器是可交换的,因此验证不依赖于验证器的顺序。如果验证的需要取决于除存在之外的其他因素,您可以使用 @ValidateIf()
它接受一个函数参数。
我想对请求有效负载应用验证,比如有字符串类型的字段名称。但名称不是必填字段,但如果存在,则必须执行 @IsNotEmpty()
我试过这样的
@IsNotEmpty() name?: string
// 它不考虑 ?
可选约束
您可以使用 @IsOptional()
验证器:
Checks if given value is empty (
=== null
,=== undefined
) and if so, ignores all the validators on the property.
Kim 的回答很棒。如果您想将此行为应用于所有可选字段,您还可以将 skipMissingProperties: true
与验证管道一起使用。
class-validator 有一个 @IsOptional()
验证器,您可以将其与您定义的任何其他验证器一起添加,如下所示:
@IsOptional() @IsNotEmpty() name: string;
装饰器是可交换的,因此验证不依赖于验证器的顺序。如果验证的需要取决于除存在之外的其他因素,您可以使用 @ValidateIf()
它接受一个函数参数。