TypeScript:
Sử dụng mảng liên kết
Làm thế nào:
Việc tạo và sử dụng mảng kết hợp trong TypeScript là trực tiếp. Dưới đây là một hướng dẫn cơ bản:
// Khai báo một mảng kết hợp
let user: { [key: string]: string } = {};
// Thêm dữ liệu
user["name"] = "Jane Doe";
user["email"] = "[email protected]";
console.log(user);
Kết quả:
{ name: 'Jane Doe', email: '[email protected]' }
Lặp qua các cặp khóa-giá trị cũng rất dễ dàng:
for (let key in user) {
console.log(key + ": " + user[key]);
}
Kết quả:
name: Jane Doe
email: jane@example.com
Và nếu bạn đang xử lý một hỗn hợp các loại dữ liệu, hệ thống kiểu của TypeScript rất hữu ích:
let mixedTypes: { [key: string]: string | number } = {};
mixedTypes["name"] = "John Doe";
mixedTypes["age"] = 30;
console.log(mixedTypes);
Kết quả:
{ name: 'John Doe', age: 30 }
Đi Sâu Hơn
Trong TypeScript, những gì chúng ta gọi là mảng kết hợp thực chất là các đối tượng. Trong lịch sử, trong các ngôn ngữ như PHP, mảng kết hợp là một kiểu cơ bản, nhưng JavaScript (và do đó, TypeScript) sử dụng đối tượng cho mục đích này. Cách tiếp cận này vừa là một điểm mạnh vừa là một hạn chế. Đối tượng cung cấp một cấu trúc động cao cho việc kết hợp chuỗi với giá trị, nhưng chúng không được dự định sử dụng như ‘mảng’ theo nghĩa truyền thống. Ví dụ, bạn không thể sử dụng trực tiếp các phương thức mảng như push
hay pop
trên những đối tượng này.
Trong trường hợp bạn cần các bộ sưu tập có thứ tự của các cặp khóa-giá trị với các hoạt động giống mảng, TypeScript (và JavaScript hiện đại) cung cấp đối tượng Map
:
let userMap = new Map<string, string>();
userMap.set("name", "Jane Doe");
userMap.set("email", "[email protected]");
userMap.forEach((value, key) => {
console.log(key + ": " + value);
});
Trong khi hệ thống kiểu của TypeScript và các tính năng của ES6 như Map
cung cấp các lựa chọn mạnh mẽ, hiểu biết cách sử dụng các đối tượng như mảng kết hợp là hữu ích cho các tình huống nơi mà các đối tượng theo nghĩa đen hiệu quả hơn hoặc khi làm việc với các cấu trúc dữ liệu JSON. Mọi thứ đều tùy thuộc vào việc chọn công cụ đúng cho công việc.