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){
}
