⊗tsSpGnIms 35 of 37 menu

ข้อจำกัดของ Generics ใน TypeScript

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

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

ในกรณีนั้นเราแก้ไขสถานการณ์โดยเปลี่ยน ประเภททั่วไปเป็นประเภทของอาร์เรย์ทั่วไป แต่ใน TypeScript มีความเป็นไปได้ที่จะสร้าง ข้อจำกัดให้กับ Generics ได้ ในการทำเช่นนี้ ในเครื่องมุม หลังตัวแปร T เราเขียน คำหลัก extends หลังจากนั้น ในวงเล็บปีกกาเรากำหนดตัวแปรใหม่ str ที่เป็นประเภทสตริง โค้ดที่เหลือของฟังก์ชันจะยังคงเหมือนเดิม โดยไม่มีการเปลี่ยนแปลง:

function myFunc <T extends {str: string}> (data: T): void { console.log(data.str.length); }

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

let myStr: {str: string} = {str: 'abcde'};

ลองเรียกใช้ฟังก์ชัน myFunc อย่า ลืมระบุประเภทของมันอีกครั้ง และส่ง ตัวแปร myStr เป็นพารามิเตอร์:

myFunc <{str: string}> (myStr);

จากตัวอย่างที่พิจารณาในบทเรียน กำหนดฟังก์ชันสำหรับหาความยาวของ อาร์เรย์ตัวเลข

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