Skip to content

Map 对象

TypeScript 中的 Map 对象是一个键值对的集合,它类似于 JavaScript 中的 Map 对象。Map 对象保存键值对,并记住键的原始插入顺序。任何值(对象或原始值)都可以作为一个键或一个值。

Map 相关的函数与属性:

  • map.clear():移除 Map 对象的所有键/值对 。
  • map.set():设置键值对,返回该 Map 对象。
  • map.get():返回键对应的值,如果不存在,则返回 undefined。
  • map.has():返回一个布尔值,用于判断 Map 中是否包含键对应的值。
  • map.delete():删除 Map 中的元素,删除成功返回 true,失败返回 false。
  • map.size:返回 Map 对象键/值对的数量。
  • map.keys():返回一个 Iterator 对象, 包含了 Map 对象中每个元素的键 。
  • map.values():返回一个新的 Iterator 对象,包含了 Map 对象中每个元素的值 。

在 TypeScript 中使用 Map 对象时,你可以指定键和值的类型,以增加类型安全性。下面是一个使用 TypeScript Map 对象的简单示例:

typescript
// 创建一个 Map,指定键和值的类型  
let map: Map<string, number> = new Map<string, number>();

// 添加键值对  
map.set('apple', 5);
map.set('banana', 10);
map.set('cherry', 20);

// 获取值  
let appleCount = map.get('apple'); // appleCount 的类型是 number | undefined  
if (appleCount !== undefined) {
    console.log(`Apples: ${appleCount}`);
}

// 遍历 Map  
for (let [key, value] of map) {
    console.log(`Key: ${key}, Value: ${value}`);
}

// 检查 Map 中是否包含某个键  
if (map.has('banana')) {
    console.log('Banana is in the map.');
}

// 删除键值对  
map.delete('banana');

// 清空 Map  
map.clear();

// 检查 Map 是否为空  
if (map.size === 0) {
    console.log('The map is empty.');
}

在这个例子中,我们创建了一个 Map 对象,其中键是字符串类型,值是数字类型。我们使用 set 方法添加键值对,使用 get 方法根据键获取值,使用 has 方法检查 Map 中是否存在某个键,使用 delete 方法删除键值对,以及使用 clear 方法清空整个 Map。

注意,当你使用 get 方法从 Map 中获取值时,返回的类型是 value 的类型或 undefined,因为如果该键不存在于 Map 中,get 方法会返回 undefined。

TypeScript 的类型推断也可以用于 Map 对象,如果你不提供泛型参数,TypeScript 会根据赋值操作来推断键和值的类型。

typescript
let myMap = new Map();

myMap.set('key1', 'value1');
myMap.set(1, 'value2');

// TypeScript 会推断出 myMap 的类型是 Map<string | number, string>
编程洪同学服务平台是一个广泛收集编程相关内容和资源,旨在满足编程爱好者和专业开发人员的需求的网站。无论您是初学者还是经验丰富的开发者,都可以在这里找到有用的信息和资料,我们将助您提升编程技能和知识。
专业开发
高端定制
售后无忧
站内资源均为本站制作或收集于互联网等平台,如有侵权,请第一时间联系本站,敬请谅解!本站资源仅限于学习与参考,严禁用于各种非法活动,否则后果自行负责,本站概不承担!