ค้นหาเว็บไซต์

typescript - การใช้คลาสคำขอเดียวกันสำหรับ PATCH และ POST ใน API


ฉันมีคลาสที่ดูประมาณนี้ (มันคือส่วนของร่างกายของคำขอ 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;
}

มีวิธีที่ชาญฉลาดกว่านี้ในการใช้งานคลาสเดียวกันซ้ำหรือไม่ ฉันอยากหลีกเลี่ยงการสร้างคลาสเดียวกันโดยใส่ ? ในทุกฟิลด์เพื่อให้พวกมันเป็นค่าที่เลือกได้

คำตอบ #1

PartialType คือสิ่งที่ฉันต้องการที่นี่ ซึ่งสามารถทำได้แบบนี้:

export class UpdatedEmployeePatchRequest extends PartialType(CreateEmployeeRequest){
}