⊗tsSpGnPTL 36 of 37 menu

การใช้พารามิเตอร์ประเภทในข้อจำกัดของ Generics ใน TypeScript

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

ลองพิจารณาตัวอย่างต่อไปนี้ กลับมาที่ฟังก์ชัน myFunc ซึ่งกำหนดความยาวของตัวแปร:

function myFunc <T> (data: T): T { console.log(data.length); // ข้อผิดพลาด return data; }

อย่างไรก็ตาม ตอนนี้เราต้องการให้ฟังก์ชันนี้ ทำงานกับประเภทที่มีคุณสมบัติ length เท่านั้น ในการนี้เราจะสร้างอินเทอร์เฟซ ILength และกำหนดคุณสมบัติ length เป็นประเภทตัวเลข:

interface ILength { length: number; }

ต่อไปในฟังก์ชันของเรา เราจะกำหนดประเภทเจเนอริก ที่สืบทอดจาก ILength โดยใช้คำสำคัญ extends:

function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

นี่คือโค้ดเต็มของเรา:

interface ILength { length: number; } function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

ลองทดสอบการทำงานของฟังก์ชันของเราและ หาความยาวของสตริง:

console.log(myFunc('abcde'));

ผลลัพธ์ของการดำเนินการโค้ด:

5 'abcde'

และตอนนี้เรามาส่งอาร์เรย์ในพารามิเตอร์:

console.log(myFunc(['a', 'b', 'c']));

ผลลัพธ์ของการดำเนินการโค้ด:

3 [ 'a', 'b', 'c' ]
ไทย
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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ