TypeScript 数组类型详解

在本教程中,你将学习 TypeScript 中的数组类型,以及它的一些基本操作。

TypeScript 中的数组类型介绍

TypeScript 中的 array 是一个有序的数据列表,可以使用下面的语法来声明一个存储指定类型的值的数组:

let arrayName: type[];

如下所示,声明了一个 字符串 数组:

let skills: string[];

你可以通过下面的方式往数组中添加一个或多个字符串:

skills[0] = 'Problem Solving';
skills[1] = 'Programming';

也可以使用 push() 方法往数组中添加元素:

skills.push('Software Design');

下面的例子中,声明并把一个字符串数组赋值给了 skills 变量:

let skills = ['Problem Sovling', 'Software Design', 'Programming'];

在这个例子中,TypeScript 推断 skills 数组是一个字符串数组,它相当于:

let skills: string[];
skills = ['Problem Sovling', 'Software Design', 'Programming'];

当给数组指定了类型,TypeScript 会阻止你向数组中添加不兼容的值,下面的例子会抛出一个错误提示:

skills.push(100);

因为我们尝试往字符串数组中添加一个数值。

错误提示:

Argument of type 'number' is not assignable to parameter of type 'string'.

当从一个数组中提取元素的时候,TypeScript 会执行 类型推断 的操作,如下所示:

let skill = skills[0];
console.log(typeof skill);

输出:

string

这个例子中,提取了 skills 数组中的第一个元素,把它赋值给了 skill 变量,由于字符串数组中的元素都是字符串,TypeScript 把 skill 变量的类型推断为字符串类型。

TypeScript 中的数组的属性和方法

TypeScript 中的数组和 JavaScript 一样,可以访问 JavaScript 数组中的所有属性和方法,比如下面使用 length 属性来获取数组中元素的数量:

let series = [1, 2, 3];
console.log(series.length); // 3

也可以使用 JavaScript 中的数组的所有方法,比如 forEach(), map(), reduce()filter(),如下所示:

let series = [1, 2, 3];
let doubleIt = series.map((e) => e * 2);
console.log(doubleIt);

输出:

[ 2, 4, 6 ]

存储混合类型的值

下面演示了如何声明一个同时存储字符串和数字的数组:

let scores = ['Programming', 5, 'Software Design', 4];

在这个例子中,TypeScript 把 scores 数组推断为 (string | number)[] 类型,它和下面的例子是等价的:

let scores: (string | number)[];
scores = ['Programming', 5, 'Software Design', 4];

小结

教程来源于Github,感谢cody1991大佬的无私奉献,致敬!

技术教程推荐

从0开始学微服务 -〔胡忠想〕

如何做好一场技术演讲 -〔极客时间〕

性能工程高手课 -〔庄振运〕

Java业务开发常见错误100例 -〔朱晔〕

Serverless入门课 -〔蒲松洋(秦粤)〕

Vim 实用技巧必知必会 -〔吴咏炜〕

技术面试官识人手册 -〔熊燚(四火)〕

玩转Vue 3全家桶 -〔大圣〕

超级访谈:对话玉伯 -〔玉伯〕