⊗tsSpGnPTL 36 of 37 menu

Sử dụng tham số kiểu trong các ràng buộc generic của TypeScript

TypeScript cũng có khả năng khai báo một tham số kiểu sẽ bị ràng buộc bởi một tham số kiểu khác. Điều này cần thiết khi phải sao chép thuộc tính từ một đối tượng này sang một đối tượng khác, đồng thời đảm bảo rằng chúng ta không truyền thừa thuộc tính nào.

Hãy xem xét ví dụ sau. Hãy quay lại với hàm myFunc, xác định độ dài của biến:

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

Tuy nhiên, bây giờ chúng ta muốn hàm này chỉ hoạt động với các kiểu có thuộc tính length. Để làm điều này, hãy tạo interface ILength và gán cho nó thuộc tính length kiểu number:

interface ILength { length: number; }

Tiếp theo, trong hàm của chúng ta, hãy chỉ định kiểu generic mà kế thừa từ ILength thông qua từ khóa extends:

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

Đây là toàn bộ mã của chúng ta:

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

Hãy kiểm tra hoạt động của hàm chúng ta và tìm độ dài của chuỗi:

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

Kết quả của mã được thực thi:

5 'abcde'

Và bây giờ hãy truyền một mảng vào tham số:

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

Kết quả của mã được thực thi:

3 [ 'a', 'b', 'c' ]
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