typescript 在API中对PATCH和POST使用相同的请求类

vuktfyat  于 2023-01-27  发布在  TypeScript
关注(0)|答案(1)|浏览(140)

我有一个类,看起来像这样(它是一个POST请求的主体):

export class CreateEmployeeRequest{
  @IsString()
  public firstName: string;
  
  @IsString()
  public lastName: string;
  
  @IsString()
  public comments: string;
}

所有这些字段都是必需的,并将在创建中使用。我想创建一个补丁在这个相同的请求。
对于PUT,这是合适的:

export class UpdateEmployeeRequest extends CreateEmployeeRequest{
}

但是我需要一个PATCH请求,它可能包含也可能不包含这些字段,它类似于:

export class UpdatedEmployeePatchRequest{
  public firstName?: string;
  public lastName?: string;
  public comments?: string;
}

任何更聪明的方法来重用同一个类。我会避免在所有字段上创建带有?的同一个类,使它们成为可选的。

kxeu7u2r

kxeu7u2r1#

PartialType是我在这里需要的。这可以这样做:

export class UpdatedEmployeePatchRequest extends PartialType(CreateEmployeeRequest){
}

相关问题