简介
TypeScript 数组有一个根本特征:所有成员的类型必须相同,但是成员数量是不确定的,可以是无限数量的成员,也可以是零成员。
数组的类型有两种写法。第一种写法是在数组成员的类型后面,加上一对方括号。
let hiyooo:[] = [1,2,3]
let hiyooo1:(number|string)[] = ["hiyooo",2];
数组类型的第二种写法是使用 TypeScript 内置的 Array 接口。
let hiyooo:Array<number>;
hiyooo= [1,2,3]
数组的类型推断
如果数组变量没有声明类型,TypeScript 就会推断数组成员的类型。这时,推断行为会因为值的不同,而有所不同。
如果变量的初始值是空数组,那么 TypeScript 会推断数组类型是any[]
。
let hiyooo:[];
//此时会被自动推断为any[]
hiyooo.push(1);// number[]
hiyooo.push("hiyooo") //string
只读数组,const 断言
JavaScript 规定,const
命令声明的数组变量是可以改变成员的。
TypeScript 允许声明只读数组,方法是在数组类型前面加上readonly
关键字。
const hiyoooArray : [] = [1,2,3]
hiyoooArray[0] =100;//可以正常修改
const hiyooo:readonly[] = [1,2,3]
hiyooo[0] = 1;//error readonly 为只读,不可修改
多维数组
TypeScript 使用T[][]
的形式,表示二维数组,T
是最底层数组成员的类型。
let hiyooo:number[][] = [
[1,2,3],[1,2,3,4]
]