0
votes

I am trying to working with base calls in Nestjs with class-validator and class-transform

I have a base class as follows:

class BaseClass{
   @IsString()
   name:string;

   @IsNumber()
   num:number;
}

now I have a service that should get childDto

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

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

now I would like a dto that includes only the "name" and validate in the controller or service

class childDto extends BaseClass{}

how can I make sure to take only "name" field instead, create another dto with code duplication

and also to make sure the validation is working per specific DTO

thx

2

2 Answers

2
votes

You can use PickType

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

For more details visit mapped-types#pick

0
votes

I think syntax planToClass err please check again
example: let users = plainToClass(User, userJson);