⊗tsSpGnCls 34 of 37 menu

คลาสเจเนอริกใน TypeScript

นอกจากอินเทอร์เฟซเจเนอริกแล้ว ใน TypeScript ยังสามารถสร้างคลาสเจเนอริกได้อีกด้วย

มาสร้างคลาส User แบบเจเนอริก กัน เขียนคุณสมบัติ value ประเภทเจเนอริกและสร้าง คอนสตรัคเตอร์ที่เกี่ยวข้อง:

class User <T> { value: T; constructor(userData: T) { this.value = userData; } }

ตอนนี้มาสร้างอ็อบเจกต์ของคลาสนี้และ กำหนดค่า string ให้กับคุณสมบัติของมัน:

let user = new User('john'); console.log(user.value); // 'john'

อย่างไรก็ตาม ถ้าเรากำหนดค่า string ให้กับอ็อบเจกต์ตอนสร้าง แล้ว เราจะไม่สามารถเขียนทับค่านั้นด้วยประเภทอื่นได้:

let user = new User('john'); user.value = 35;

เมื่อพยายามรันโค้ด เราจะเห็นข้อผิดพลาดดังต่อไปนี้:

Type 'number' is not assignable to type 'string'.

แต่ในขณะเดียวกัน เราสามารถเขียนทับค่า string ได้:

let user = new User('john'); user.value = 'alex'; console.log(user.value); // 'alex'

สังเกตว่า เราไม่สามารถเขียนทับคุณสมบัติของ อ็อบเจกต์เดียวกันด้วยประเภทอื่นได้ แต่เราสามารถสร้างอ็อบเจกต์อื่นขึ้นมาใหม่ได้:

let newUser = new User(35); console.log(newUser.value); // 35
ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ