用于 NestJS 的自定义可链接装饰器

Custom chainable decorator for NestJS

提问人:nikksan 提问时间:11/8/2023 最后编辑:Ikram Akbarnikksan 更新时间:11/9/2023 访问量:26

问:

我正在玩 NestJS 并遇到了一些奇怪的东西 - 默认装饰器之间和中没有分离。我找到了这个解决方法:nullundefinedIsOptional

export function IsOptionalNonNullable(validationOptions?: ValidationOptions) {
  return ValidateIf((_obj: unknown, value: unknown) => {
    if (value === undefined) {
      return false;
    }

    return true;
  }, validationOptions);
}

export function IsNullable(validationOptions?: ValidationOptions) {
  return ValidateIf((_obj: unknown, value: unknown) => {
    if (value === null) {
      return false;
    }

    return true;
  }, validationOptions);
}

..然而,这确实可以解决问题,错误消息令人困惑,因为它只使用了下一个失败的约束。

我尝试做我自己的自定义验证器来实现 ,但该函数应该返回一个布尔值,这在我的情况下是不够的。ValidatorConstraintInterfacevalidate

理想情况下,我会有一个装饰器,如果它失败,我希望收到一条消息,指示这是允许的值。Nullablenull

JavaScript TypeScript 验证 nestjs 装饰器

评论

0赞 pakut2 11/14/2023
您可以向自定义装饰器验证器添加默认消息,就像使用类验证器一样。github.com/typestack/class-validator#custom-validation-classes
0赞 nikksan 11/17/2023
当我想修改主验证器的消息指示 null 是有效值时,这无济于事。

答: 暂无答案