1.写法1:类型[]
这是最常用、最直观的定义方式,表示一个由特定类型元素组成的数组。
const arr1: number[] = [1, 2, 3];
const arr2: string[] = ['a', 'b', 'c'];
const arr3: boolean[] = [true, false];
const arr4: any[] = [1, 'a', true];
arr1.unshift(0); // [0, 1, 2, 3]
联合类型数组:如果数组中的元素类型不确定,可以使用联合类型。
// 数组元素可以是 number 或 string
let mixedArray: (number | string)[] = [1, 'two', 3, 'four'];
2.写法2:泛型数组Array<类型>
这种语法使用泛型(Generics)来定义数组类型,提供了另一种可读性强的选择。
let numbers: Array<number> = [1, 2, 3, 4];
同样也可以使用联合类型
let mixedArray: Array<number | string> = [1, 'two', 3, 'four'];
3.用接口表示数组
一般用来描述类数组,核心在于描述那些结构不完全是数组,但行为又类似数组的复杂对象。
interface NumberArray {
// 可以描述任何拥有数字索引并且值是数字的对象
[index: number]: number;
}
const arr6: NumberArray = [1, 2, 3];
举个栗子
interface StudentScore {
[index: number]: number;
name: string;
average(): number;
}
const score: StudentScore = {
0: 90,
1: 95,
2: 100,
name: "YaeZed",
average() {
let sum = 0;
for (let i = 0; i < 3; i++) {
// sum += this[i];// 这里报错原因是因为编译器无法保证每个i都存在
const score = this[i];
if (score !== undefined) sum += score; // 这里的undefined判断是为了避免数组越界
}
return sum / 3;
}
}
// console.log(score[0]);
// console.log(score.name);
// console.log(score.average());
4.any
any类型数组,在 TypeScript 中,
any[]
是一种特殊的数组类型,它允许数组中包含任何类型的元素。它本质上是 TypeScript 类型的“逃生舱”,用于在类型系统无法确定或不方便确定类型时,暂时放弃类型检查。更多还是使用联合类型。
const arr7: any[] = [1, 'a', true];
参考文章
小满zs 学习typeScript4(数组类型) xiaoman.blog.csdn.net/article/det…