ts总结4、TypeScript 的数组类型

一、TS中的数组类型:所有成员的类型必须相同,但是数据量可以是无限量的,当然也可以是零成员
二、写法

数组的第一种写法:

// 第一种:在数组成员的类型后面,加上一对方括号。

let arr:number = [1,2,3];// 
上例解析:数组arr的类型是number[],其中number表示数组成员类型是number。



复杂的可以写成下面这种
let arr:(number|string)[]
注意:圆括号是必须的,否则因为竖杠|的优先级低于[],TypeScript 会把number|string[]理解成number和string[]的联合类型。



数组的第二种写法:

// 第二种:数组类型的第二种写法是TS内置的Array接口

let arr:Array = [1,2,3];
数组arr的类型是Array,其中number表示成员类型必须是number,这种对于复杂的数组可读性稍好一些

let arr:Array; // 这种写法本质上属于泛型,

注意:

1、数组类型声明了以后,成员数量是不限制的,任意数量的成员都可以,也可以是空数组。也就是说数组的成员是可以动态变化的。

let arr:number[] = [1, 2, 3];

arr[3] = 4;
arr.length = 2;

arr // [1, 2]


// 正是由于成员数量可以动态变化,所以 TypeScript 不会对数组边界进行检查,越界访问数组并不会报错。
let arr:number[] = [1, 2, 3];
let foo = arr[3]; // 正确:变量foo的值是一个不存在的数组成员,TypeScript 并不会报错

2、TypeScript 允许使用方括号读取数组成员的类型。

type Names = string[];
type Name = Names[0]; // string



由于数组成员的索引类型都是number;所以读取成员类型也可以这样写
type Names = string[];
type Name = Names[number]; // string
上例中,Names[number]表示数组Names所有数值索引的成员类型,所以返回string。
二、数组的类型推断

待续。。。。。。。。。。。。。。。。。。

你可能感兴趣的:(typscript,typescript)