除了使用MAP-像对象,出现了有一段时间的实际Map
object,编译到ES6时,或使用与ES6 type-definitions一个填充工具时,这是在打字稿可用:
let people = new Map<string, Person>();
它支持相同的功能Object
,和更多,具有稍微不同的语法:
// Adding an item (a key-value pair):
people.set("John", { firstName: "John", lastName: "Doe" });
// Checking for the presence of a key:
people.has("John"); // true
// Retrieving a value by a key:
people.get("John").lastName; // "Doe"
// Deleting an item by a key:
people.delete("John");
此单独拥有使用MAP- 像对象的几个优点,如:
甲通常情况下,Map
对象为常见任务提供了更强大和更优雅的API,但大多数API不通过简单的Object
s就可以使用,而无需一起辅助函数(尽管其中一些需要用于ES5目标或更低级别的完整ES6迭代器/可迭代polyfill) :
// Iterate over Map entries:
people.forEach((person, key) => ...);
// Clear the Map:
people.clear();
// Get Map size:
people.size;
// Extract keys into array (in insertion order):
let keys = Array.from(people.keys());
// Extract values into array (in insertion order):
let values = Array.from(people.values());
旧帖子,但请注意,有ES6映射 –