Mảng tổng quát
Thuộc phần Giới thiệu về TypeScript trong hành trình JavaScript của Coddy. Bài học 60 trên 73.
Mảng và kiểu tổng quát kết hợp rất tốt trong TypeScript. Khi học về mảng có kiểu dữ liệu trước đó, bạn đã dùng cú pháp T[] để chỉ định rằng một mảng chỉ có thể chứa các phần tử thuộc một kiểu dữ liệu cụ thể. Kiểu tổng quát giúp bạn diễn đạt cùng khái niệm này theo một cách khác.
TypeScript cung cấp một cú pháp khác để khai báo mảng có kiểu dữ liệu bằng định dạng Array<T>:
// These two declarations are equivalent:
let numbers1: number[] = [1, 2, 3];
let numbers2: Array<number> = [1, 2, 3];Cú pháp Array<T> đặc biệt hữu ích khi làm việc với các hàm tổng quát thao tác trên mảng. Cú pháp này giúp thể hiện rõ hơn tính tổng quát của code và làm code dễ đọc hơn, nhất là khi bạn tạo các hàm có thể làm việc với mảng thuộc mọi kiểu dữ liệu mà vẫn đảm bảo an toàn kiểu.
Thử thách
DễTạo một hàm tổng quát có tên getFirstElement, nhận một mảng có kiểu bất kỳ và trả về phần tử đầu tiên hoặc undefined nếu mảng rỗng.
Hàm cần:
- Dùng tham số kiểu tổng quát
T - Nhận một tham số tên
arrcó kiểuArray<T> - Trả về phần tử đầu tiên có kiểu
Thoặcundefined - Có chú thích kiểu trả về tường minh là
T | undefined
Tạo các mảng sau bằng cú pháp Array<T>:
stringArraycó kiểuArray<string>, chứa["apple", "banana", "cherry"]numberArraycó kiểuArray<number>, chứa[10, 20, 30, 40]booleanArraycó kiểuArray<boolean>, chứa[true, false, true]emptyStringArraycó kiểuArray<string>và rỗng
Kiểm tra hàm và in ra các kết quả sau:
- In ra kết quả khi gọi
getFirstElementvớistringArray - In ra kết quả khi gọi
getFirstElementvớinumberArray - In ra kết quả khi gọi
getFirstElementvớibooleanArray - In ra kết quả khi gọi
getFirstElementvớiemptyStringArray - In ra kết quả khi gọi
getFirstElementvới mộtArray<string>mới chứa["single"]
Tự làm thử
// TODO: Viết code tại đây
// Tạo hàm tổng quát getFirstElement
// Tạo các mảng cần thiết bằng cú pháp Array<T>
// Kiểm tra hàm và in kết quảBài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Giới thiệu về TypeScript
1Bắt đầu với TS
TypeScript là gì?Tại sao nên dùng TypeScript?Đoạn code TypeScript đầu tiênQuy trình biên dịch và lỗiÔn tập: Giới thiệu về TS4Làm việc với hàm
Khai báo kiểu cho tham số và giá trị trả vềKhai báo kiểu cho hàm mũi tênKiểu trả về voidTham số tùy chọn với '?'Giá trị mặc định của tham sốKhai báo kiểu cho tham số restĐịnh nghĩa kiểu hàmÔn tập: xây dựng hàm có kiểu2Kiểu dữ liệu cốt lõi
Kiểu dữ liệu cơ bản: str, num, booleanKiểu 'any': lối thoátKiểu 'unknown'Làm việc với null và undefinedSuy luận kiểu trong thực tếChú thích kiểu tường minhÔn tập: luyện tập về kiểu dữ liệu cốt lõi3Cấu trúc dữ liệu: mảng và tuple
Mảng định kiểuTừ khóa readonly cho mảngTuple là gì?Khai báo và truy cập tuplePhân rã tupleTuple chỉ đọcMảng định kiểu nhiều chiềuToán tử spread với mảngÔn tập: mảng và tuple6Khai báo kiểu cho đối tượng và interface
Chú thích kiểu đối tượng trực tiếpBí danh kiểu cho đối tượngGiới thiệu về interfaceInterface và bí danh kiểuThuộc tính tùy chọn và chỉ đọcMở rộng interface và kiểuThêm phương thức vào interfaceÔn tập: định nghĩa hình dạng đối tượng9Kiểu tổng quát: tìm hiểu cơ bản
Vấn đề mà kiểu tổng quát giải quyếtTạo hàm identity tổng quátSử dụng hàm tổng quátMảng tổng quátGiao diện tổng quátÔn tập: luyện tập hàm tổng quátTự luyện tập: Playground TypeScript