类验证程序与类转换器的类型函数不起作用


class Product {
@Min(0, { message: 'should be positive number' })
@IsNotEmpty({ message: 'should not be empty' })
@Type(() => Number)
price: number;
}

*在这种情况下,price来自输入值,所以它最初应该是字符串。

我想通过类验证器显示以下情况的错误消息,但只有@IsNotEmpty不起作用。

  1. 如果字段为空,则显示"不应为空">
  2. 如果字段不为空&字段值为负数,显示"应为正数">

为什么@IsNotEmpty不能使用@Type类型的函数?

我认为您混淆了class-validatorclass-transformer的装饰器。

我的理解是@Type仅由class-transformer用于帮助转换嵌套对象的类型。撇开这个问题不谈,我认为你申报验证器的顺序很重要。这应该有效:

class Product {
@IsNotEmpty({ message: 'should not be empty' })
@Min(0, { message: 'should be positive number' })
price: number;
}

最新更新