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)验证子类中的特定字段的主要内容,如果未能解决你的问题,请参考以下文章