typescript.-如何使用类验证器和类转换器(Nestjs)验证子类中的特定字段

Posted

技术标签:

【中文标题】typescript.-如何使用类验证器和类转换器(Nestjs)验证子类中的特定字段【英文标题】:typescript.- how can I validate specific fields in child class using class validator and class transformer (Nestjs) 【发布时间】:2021-02-23 12:57:34 【问题描述】:

我正在尝试通过 class-validator 和 class-transform 在 Nestjs 中使用基本调用

我有一个基类如下:

class BaseClass
   @IsString()
   name:string;

   @IsNumber()
   num:number;

现在我有一个应该得到 childDto 的服务

service....
async fun(child:childDTO)

  const dto = plainToClass(child)
  await validate(dto)// or via validate pipe

现在我想要一个仅包含“名称”并在控制器或服务中验证的 dto

class childDto extends BaseClass

如何确保只填写“姓名”字段 相反,使用代码重复创建另一个 dto

并确保验证在每个特定的 DTO 下正常工作

谢谢

【问题讨论】:

【参考方案1】:

我认为语法 planToClass 错误,请再次检查 例如: let users = plainToClass(User, userJson);

【讨论】:

【参考方案2】:

你可以使用 PickType

export class childDto extends PickType(BaseClass, ['name'] as const) 

更多详情请访问mapped-types#pick

【讨论】:

以上是关于typescript.-如何使用类验证器和类转换器(Nestjs)验证子类中的特定字段的主要内容,如果未能解决你的问题,请参考以下文章

使用Typescript和类组件装饰器时如何在Vue Router中传递props

尝试安装类验证器和类转换器时,NestJS“警告 EBADENGINE 不支持的引擎 @angulardevkit”

(二十六)类加载机制和类的加载连接(验证准备解析)和初始化

C++ 函数指针参数和类继承自动转换

从java转换后如何修复typescript类文件错误?

JVM运行和类加载的全过程