首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nestjs中使用class-validator验证可选参数?

在nestjs中使用class-validator验证可选参数?
EN

Stack Overflow用户
提问于 2019-04-08 18:53:12
回答 3查看 24.9K关注 0票数 18

我想在请求有效负载上应用验证,比如,有字符串类型的字段名称。但name不是必填字段,但如果存在,则必须执行@IsNotEmpty()

我尝试了类似这样的@IsNotEmpty() name?: string //它没有考虑?可选约束

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-08 22:19:14

您可以使用@IsOptional()验证器:

检查给定值是否为空(=== null=== undefined),如果为空,则忽略该属性上的所有验证器。

票数 33
EN

Stack Overflow用户

发布于 2020-06-20 22:07:55

class-validator有一个@IsOptional()验证器,您可以将其与您定义的任何其他验证器一起添加,如下所示:

代码语言:javascript
复制
@IsOptional() @IsNotEmpty() name: string;

装饰器是可交换的,因此验证不依赖于验证器的顺序。如果验证需要依赖于存在之外的其他因素,您可以使用@ValidateIf(),它接受一个函数参数。

票数 11
EN

Stack Overflow用户

发布于 2020-04-13 09:19:25

Kim的回答很好。如果要将此行为应用于所有可选字段,还可以将skipMissingProperties: true与验证管道一起使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55571773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档