ฉันกำลังพยายามแคสต์ในโค้ดของฉันจากเนื้อหาของคำขอในแบบด่วน (โดยใช้มิดเดิลแวร์ตัวแยกวิเคราะห์เนื้อหา) ไปยังอินเทอร์เฟซ แต่ไม่ได้บังคับใช้ความปลอดภัยประเภท
นี่คืออินเทอร์เฟซของฉัน:
export interface IToDoDto {
description: string;
status: boolean;
};
นี่คือรหัสที่ฉันพยายามสร้างนักแสดง:
@Post()
addToDo(@Response() res, @Request() req) {
const toDo: IToDoDto = <IToDoDto> req.body; // <<< cast here
this.toDoService.addToDo(toDo);
return res.status(HttpStatus.CREATED).end();
}
และสุดท้ายวิธีการบริการที่เรียกว่า:
public addToDo(toDo: IToDoDto): void {
toDo.id = this.idCounter;
this.todos.push(toDo);
this.idCounter++;
}
ฉันสามารถส่งผ่านข้อโต้แย้งใด ๆได้แม้แต่ข้อโต้แย้งที่ไม่เข้าใกล้คำจำกัดความของอินเทอร์เฟซและรหัสนี้จะทำงานได้ดี ฉันคาดหวังว่าหากไม่สามารถส่งการส่งจากเนื้อหาการตอบสนองไปยังอินเทอร์เฟซได้ข้อยกเว้นจะถูกส่งไปที่รันไทม์เช่น Java หรือ C #
ฉันได้อ่านแล้วว่าใน TypeScript ไม่มีอยู่มีเพียง Type Assertion ดังนั้นมันจะบอกคอมไพเลอร์ว่าวัตถุเป็นประเภทx
เท่านั้นดังนั้น ... ฉันผิดหรือเปล่า? วิธีใดในการบังคับใช้และรับรองความปลอดภัยประเภทที่ถูกต้อง