# 数组类型
在本教程中,你将学习 TypeScript 中的数组类型,以及它的一些基本操作。
# TypeScript 中的数组类型介绍
TypeScript 中的 array
是一个有序的数据列表,可以使用下面的语法来声明一个存储指定类型的值的数组:
let arrayName: type[];
1
如下所示,声明了一个 字符串 数组:
let skills: string[];
1
你可以通过下面的方式往数组中添加一个或多个字符串:
skills[0] = 'Problem Solving';
skills[1] = 'Programming';
1
2
2
也可以使用 push()
方法往数组中添加元素:
skills.push('Software Design');
1
下面的例子中,声明并把一个字符串数组赋值给了 skills
变量:
let skills = ['Problem Sovling', 'Software Design', 'Programming'];
1
在这个例子中,TypeScript 推断 skills
数组是一个字符串数组,它相当于:
let skills: string[];
skills = ['Problem Sovling', 'Software Design', 'Programming'];
1
2
2
当给数组指定了类型,TypeScript 会阻止你向数组中添加不兼容的值,下面的例子会抛出一个错误提示:
skills.push(100);
1
因为我们尝试往字符串数组中添加一个数值。
错误提示:
Argument of type 'number' is not assignable to parameter of type 'string'.
1
当从一个数组中提取元素的时候,TypeScript 会执行 类型推断 的操作,如下所示:
let skill = skills[0];
console.log(typeof skill);
1
2
2
输出:
string
1
这个例子中,提取了 skills
数组中的第一个元素,把它赋值给了 skill
变量,由于字符串数组中的元素都是字符串,TypeScript 把 skill
变量的类型推断为字符串类型。
# TypeScript 中的数组的属性和方法
TypeScript 中的数组和 JavaScript 一样,可以访问 JavaScript 数组中的所有属性和方法,比如下面使用 length
属性来获取数组中元素的数量:
let series = [1, 2, 3];
console.log(series.length); // 3
1
2
2
也可以使用 JavaScript 中的数组的所有方法,比如 forEach()
, map()
, reduce()
和 filter()
,如下所示:
let series = [1, 2, 3];
let doubleIt = series.map((e) => e * 2);
console.log(doubleIt);
1
2
3
2
3
输出:
[ 2, 4, 6 ]
1
# 存储混合类型的值
下面演示了如何声明一个同时存储字符串和数字的数组:
let scores = ['Programming', 5, 'Software Design', 4];
1
在这个例子中,TypeScript 把 scores
数组推断为 (string | number)[]
类型,它和下面的例子是等价的:
let scores: (string | number)[];
scores = ['Programming', 5, 'Software Design', 4];
1
2
2
# 小结
- 在 TypeScript 中,数组是一个有序的数据列表,数组可以存储混合类型的值;
- 声明指定类型的数组,你可以使用
let arr: type[]
这个语法。