TypeScript 是一门静态类型的 JavaScript 超集,其为 JavaScript 提供了很多额外的功能和类型支持,其中包括了一些容器类。本文将会探讨 TypeScript 中容器类的实现及其使用方法,包含 Array、Set、Map 以及 Object。
Array
Array 是 TypeScript 中最常用的容器类之一,它可以存储相同或不同类型的元素,并且可以动态增减元素。下面是 Array 的一些基本使用方法:
创建数组
const arr: string[] = ['foo', 'bar', 'baz']; const arr2: number[] = new Array<number>(5);
访问元素
const foo = arr[0]; // 'foo'
修改元素
arr[0] = 'newFoo';
增加元素
arr.push('newItem');
删除元素
arr.splice(0, 1); // 删除第一个元素
Set
Set 是 ES6 引入的集合容器类。Set 中只能存储唯一的值,即不允许有重复元素。下面是 Set 的一些基本使用方法:
创建集合
const mySet = new Set<number>(); mySet.add(1); mySet.add(2); // 上述代码等价于 const mySet2 = new Set([1, 2]);
访问元素
Set 的元素访问方式和 Array 不同,需要使用 for...of
循环或者 forEach
:
for (const item of mySet) { console.log(item); } mySet.forEach((item) => { console.log(item); });
删除元素
mySet.delete(1);
是否包含某元素
if (mySet.has(2)) { console.log('has 2'); }
清空集合
mySet.clear();
Map
Map 是另一个 ES6 引入的容器类,其可以存储键值对。Map 中的键和值可以是任意类型。下面是 Map 的一些基本使用方法:
创建 Map
const myMap = new Map<string, number>([ ['foo', 1], ['bar', 2], ]); // 添加元素 myMap.set('baz', 3);
访问元素
console.log(myMap.get('foo'));
修改元素
myMap.set('foo', 4);
删除元素
myMap.delete('baz');
是否包含某键
if (myMap.has('baz')) { console.log('has baz key'); }
清空 Map
myMap.clear();
Object
Object 是 JavaScript 中最基本的容器类之一,其可以存储键值对。Object 中的键必须是字符串类型,值可以是任意类型。下面是 Object 的一些基本使用方法:
创建 Object
const myObj = { foo: 1, bar: 2 };
访问元素
console.log(myObj['foo']); console.log(myObj.foo);
修改元素
myObj.foo = 3;
增加元素
myObj.baz = 4;
删除元素
delete myObj.baz;
是否包含某键
if ('baz' in myObj) { console.log('has baz key'); }
总结
本文介绍了 TypeScript 中常用的容器类,包括 Array、Set、Map 和 Object。它们都是支持存储键值对的容器类,但其实现和使用方法有些许不同。掌握这些容器类的使用方法可以让我们更加灵活地处理各种数据结构和算法问题。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6531f40c7d4982a6eb4097cb