⊗tsSpGnIms 35 of 37 menu

Hạn chế của Generics trong TypeScript

Trong một bài học trước, chúng ta đã tạo một hàm kiểu tổng quát, nhiệm vụ của nó là hiển thị độ dài của tham số được truyền vào. Tuy nhiên, khi biên dịch, chúng ta đã gặp lỗi vì không phải tất cả các kiểu đều có thể có thuộc tính length:

function myFunc < T > (data: T): T { console.log(data.length); // lỗi return data; }

Trong trường hợp đó, chúng ta đã sửa tình huống bằng cách thay đổi kiểu tổng quát thành kiểu mảng tổng quát. Nhưng trong TypeScript có một cách để tạo ra các ràng buộc cho generics. Để làm điều này, trong dấu ngoặc nhọn, sau biến T, chúng ta viết từ khóa extends. Sau đó, trong dấu ngoặc nhọn chúng ta khai báo một biến mới str thuộc kiểu string. Phần còn lại của mã hàm sẽ giữ nguyên:

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

Kết quả là, kiểu tổng quát kế thừa kiểu của biến str được chỉ định trong dấu ngoặc nhọn. Bây giờ hãy kiểm tra hoạt động của hàm chúng ta và tạo một biến myStr, tham chiếu đến kiểu str, và gán cho nó một giá trị trong dấu ngoặc nhọn:

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

Hãy gọi hàm myFunc, đừng quên chỉ định lại kiểu của nó và truyền biến myStr làm tham số:

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

Dựa trên ví dụ được xem xét trong bài học, hãy tạo một hàm để tìm độ dài của một mảng số.

Tiếng Việt
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ʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối