课程名称:2小时极速入门 TypeScript
课程章节: 第3章 TypeScript 基础 3-4 数组(Array)和元组(Tupple)
主讲老师:阿莱克斯刘
课程内容:
今天学习的内容是 Typescript 的数组和元组类型。
数组
创建数组有两种方式。比如创建一个元素类型是 number
类型的数组:
let arr:number[] = [1, 2, 3, 4, 5];
还可以使用泛型创建数组:
let arr2:Array<number> = [1, 2, 3, 4, 5];
强类型语言中泛型使用的非常广泛,它不需要提前指定类型,直到真正要使用的时候再将类型通过参数的形式传递进来。
JS 中的数组非常灵活,长度不固定,元素类型任意。TS 也可以定义元素类型任意的数组:
// 元素类型是 number 或者 string
let arr3:(number|string)[] = [1, '2'];
使用 any 处理为动态类型的数组,表现就和 JS 一致了:
let arr3:any[] = [1, '2', false];
元组
元组类型是 TS 扩展的类型,原生 JS 中没有这个类型。
元组是一种特殊的数组,特点是长度固定,元素类型固定。
let person:[string, number] = ['kw', 18];
变量 person
的长度固定,类型也必须和声明的类型保持一一对应。如果将 person
的第一个元素改为其他非数字 string 类型,或者新增一个元素,都会报错:
person[0] = 20; // 报错:Type 'number' is not assignable to type 'string'.
person[2] = 30; // 报错:Type '30' is not assignable to type 'undefined'.
但是使用数组的 push 方法来给元组新增元素是不会报错的,并能能影响元组的值:
person.push(30);
console.log(person); // [ 'kw', 18, 30 ]
在使用元组时需要注意这一点。
还有,在声明元组时一定要指定类型,否则将会处理为普通的数组使用。
元组类型适合组织有规律的数据,比如定义一个学生,有姓名和学号,就适合使用元组类型来描述,方便代码进行处理。
课程收获
这节课学习了 Typescript
的数组类型和元组类型,声明数组有两种方式,可以声明为静态类型的数组,也可以使用 any
声明为动态类型的数组。元组是一种特殊的数组,特点是长度固定,元素类型固定。