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

คลาสต้องมีคอนสตรัคเตอร์ใน Typescript ไหม?


ตัวอย่างทั้งหมดที่ฉันเห็นแสดงให้เห็นคลาสที่มีคอนสตรัคเตอร์ การไม่ใส่คอนสตรัคเตอร์ได้ไหม? คล้ายกับที่ C# สร้างคอนสตรัคเตอร์ว่างแบบดีฟอลต์ให้คุณโดยอัตโนมัติ

คำตอบ #1

จากสเปค ส่วนที่ 8.3 (8.3):

คลาสอาจมีการประกาศตัวสร้างได้ไม่เกินหนึ่งตัว หากคลาสไม่มีการประกาศตัวสร้าง ตัวสร้างอัตโนมัติจะถูกจัดให้ตามที่อธิบายไว้ในส่วนที่ 8.3.3 (8.3.3)

คำตอบ #2

ถูกต้อง คลาสใน TypeScript ไม่จำเป็นต้องให้คุณเขียนคอนสตรักเตอร์เอง แต่หากคุณกำลังขยายคลาสฐาน คุณจะต้องสร้างคอนสตรักเตอร์เพื่อเรียกใช้ super() อย่างน้อย

คำตอบ #3

เพียงเพื่อขยายคำตอบที่ได้รับการยอมรับและแก้ไขคำตอบของ Jon Gear (TS อาจมีการเปลี่ยนแปลงในระหว่างนี้): คลาสที่สืบทอดไม่จำเป็นต้องสร้างตัวสร้างขึ้นด้วยวัตถุประสงค์เพียงเพื่อเรียก super().

https://stackblitz.com/edit/no-need-for-derived-constructor?file=index.ts

บทความที่เกี่ยวข้อง