class-validator - 如何允许空,但禁止未定义?
问题描述
例如,对于数据库行,我们可能需要不能未定义的可为空属性:
class DbRow {
@IsNumber()
id!: number;
@IsNumber()
numNullable!: number | null;
}
所以numNullable
可以是一个数字或null
- 但它绝不能是undefined
。
我们如何在类验证器中表达这一点?
- 添加
@Optional()
不起作用,因为这也将允许undefined
- 我对自定义验证器也没有运气
解决方案
事实证明,这可以通过使用条件验证来 ValidateIf
实现:
class DbRow {
@IsNumber()
id!: number;
@IsNumber()
@ValidateIf((object, value) => value !== null)
numNullable!: number | null;
}
这是一个stackblitz示例
推荐阅读
- stored-procedures - 在 Sybase 存储过程中为简单的 1 行 UPSERT 使用游标有什么意义?
- php - docker-php-ext-install 运行每个构建制作新图像并离开
- java - 片段和配置更改
- react-native - 如何获取视图的宽度和高度?
- johnsnowlabs-spark-nlp - 我们应该如何使用 setDictionary 作为 Spark-NLP 中的词形还原注释器?
- sql - 如何编写带有时间戳作为输入参数的 DB2 函数
- azure-active-directory - Graph Explorer:如何与应用程序帐户一起使用?
- c++ - 在 C++ 中如何定义从整数到浮点的精度损失?
- php - 如何重定向静态 URL
- rust - 如何在 actix-web 1.0 中间件中读取请求正文?