TypeScript Map 对象
Map 是 ES6 中引入的一种新的数据结构,它类似于对象(Object),也是键值对的集合。但与普通对象相比,Map 提供了更强大和灵活的功能,尤其是在键的类型上。
在 TypeScript 中使用 Map,可以结合泛型来指定键(Key)和值(Value)的类型,从而获得完整的类型安全支持。
创建 Map
你可以使用 new Map() 构造函数来创建一个新的 Map。你可以指定键和值的类型。
你也可以在创建时直接初始化数据,通过一个包含键值对的数组(例如元组数组)。
Map 的主要特性
- 任意类型的键: 普通对象的键只能是字符串或 Symbol。而
Map的键可以是任意类型的值,包括函数、对象或任何基本类型。 - 有序性:
Map中的元素是按插入顺序排列的。当你遍历Map时,会按照元素被添加的顺序进行。 size属性:Map直接提供size属性来获取键值对的数量,比计算对象属性个数更高效。- 易于迭代:
Map原生支持迭代,可以直接与for...of循环配合使用。
Map 的常用方法和属性
set(key, value)
向 Map 中添加或更新一个键值对。返回 Map 对象本身,因此可以链式调用。
get(key)
获取指定键对应的值。如果键不存在,则返回 undefined。
has(key)
检查 Map 中是否存在指定的键,返回一个布尔值。
delete(key)
删除指定的键值对。如果成功删除,返回 true;否则返回 false。
clear()
清空 Map,移除所有的键值对。
size 属性
返回 Map 中的键值对数量。
遍历 Map
Map 提供了多种遍历方式。
使用 for...of 循环
这是最常用的遍历方式。
使用 forEach() 方法
遍历键或值
keys(): 返回一个包含所有键的迭代器。values(): 返回一个包含所有值的迭代器。entries(): 返回一个包含所有[key, value]对的迭代器(for...of内部就是使用这个)。