typescript - ไม่มีข้อผิดพลาดถ้าหากไม่มีอาร์กิวเมนต์ของคอนสตรัคเตอร์
นั่นคอมไพล์โดยไม่มีข้อผิดพลาด:
interface A {}
interface AConstructor {
new(id: string): A
}
const AC: AConstructor = class implements A {
// note the missing parameter »id«
constructor(){}
}
แต่เปลี่ยนเป็น:
const AC: AConstructor = class implements A {
// note that this is now of type number
constructor(id: number){}
}
สร้างข้อผิดพลาด โดยรวมแล้วจะไม่มีข้อผิดพลาดหากพารามิเตอร์ของคอนสตรัคเตอร์หายไป มีเฉพาะกรณีที่พารามิเตอร์มีประเภทไม่ถูกต้องเท่านั้น ทำไมถึงเป็นเช่นนั้น? มีธงใดบ้างที่จะทำให้ TS สร้างข้อผิดพลาดในการคอมไพล์หากอาร์กิวเมนต์เหล่านั้นหายไป?