Viết một lớp Dictionary/Map sử dụng Generic Type để lưu trữ cặp key-value trong TypeScript.
Việc tạo lớp Dictionary/Map sử dụng Generic Type cho phép lưu trữ cặp key-value với key và value có thể là bất kỳ kiểu dữ liệu nào. Mình sẽ xây dựng một lớp Dictionary
sử dụng kiểu generic
để thực hiện việc này.
Lưu ý: Lớp Dictionary sẽ cung cấp khả năng lưu trữ dữ liệu theo cặp key-value linh hoạt và đa dạng.
Tạo lớp Dictionary sử dụng Generic Type
Bắt đầu bằng việc định nghĩa lớp Dictionary với sử dụng kiểu generic để lưu trữ cặp key-value
.
1 2 3 4 5 6 7 8 9 10 11 12 | class Dictionary<K, V> { private items: { key: K; value: V }[] = []; set(key: K, value: V): void { this .items.push({ key, value }); } get(key: K): V | undefined { const foundItem = this .items.find(item => item.key === key); return foundItem ? foundItem.value : undefined; } } |
Sử dụng lớp Dictionary với các kiểu dữ liệu khác nhau
Mình có thể sử dụng lớp Dictionary
với các kiểu dữ liệu khác nhau cho key và value.
1 2 3 4 5 6 7 8 9 | const numberDictionary = new Dictionary<number, string>(); numberDictionary.set(1, "One" ); numberDictionary.set(2, "Two" ); console.log(numberDictionary.get(1)); // Kết quả: One const stringDictionary = new Dictionary<string, boolean>(); stringDictionary.set( "isDone" , true ); stringDictionary.set( "isWorking" , false ); console.log(stringDictionary.get( "isWorking" )); // Kết quả: false |
Lớp Dictionary
đã được xây dựng với khả năng lưu trữ cặp key-value dựa trên kiểu generic. Khi sử dụng với các kiểu dữ liệu khác nhau, nó cho phép mình lưu và truy xuất dữ liệu một cách linh hoạt. Phương thức set được sử dụng để thêm một cặp key-value vào Dictionary, trong khi get được sử dụng để lấy value dựa trên key cho trước.
Kết quả khi chạy mã lệnh sẽ hiển thị giá trị tương ứng với key đã truyền vào hàm get từ Dictionary
.
Việc sử dụng kiểu generic trong lớp Dictionary/Map là một cách mạnh mẽ để làm việc với cặp key-value với độ linh hoạt cao. Không chỉ cho phép lưu trữ dữ liệu theo cặp key-value với bất kỳ kiểu dữ liệu nào, mà còn giúp tái sử dụng mã lệnh một cách hiệu quả.
Khi xây dựng một lớp Dictionary dựa trên generic type, mình mở rộng khả năng sử dụng cũng như tính linh hoạt của mã nguồn. Việc sử dụng lớp này với các kiểu dữ liệu khác nhau như số, chuỗi, boolean, hoặc thậm chí là đối tượng, đều cho phép lưu trữ và truy xuất dữ liệu một cách dễ dàng và linh hoạt.
Tính linh hoạt của kiểu generic trong TypeScript không chỉ giúp việc xây dựng các cấu trúc dữ liệu mà còn mở ra khả năng tận dụng lại mã nguồn trong nhiều tình huống khác nhau, giúp tăng tính tái sử dụng và giảm thiểu việc viết lại mã lệnh. Điều này đồng nghĩa với việc tiết kiệm thời gian và nỗ lực trong quá trình phát triển ứng dụng TypeScript.
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Viết một lớp Stack và Queue sử dụng Generic Type.
- Tạo một hàm generic nhận vào một mảng và trả về phần tử cuối cùng của mảng trong TypeScript.
- Viết một lớp Dictionary/Map sử dụng Generic Type để lưu trữ cặp key-value trong TypeScript.
- Tạo một hàm generic nhận vào một mảng và một hàm predicate trong TypeScript.
- Hàm Generic với Keyof trong Typescript
- Tạo một hàm generic nhận vào hai đối tượng và trả về một đối tượng mới trong TypeScript.