1.数组类型
1.1 数组类型定义
- 简便数组类型表示法
- 泛型数组类型表示法
1.1.1 简便数组类型表示法
const digits: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
const red: (string | number)[] = ["f", 0, 1];
1.1.2泛型数组类型表示法
const digits: Array<number> = [0, 1, 2, 3, 4, 5, 6];
const red: Array<number | string> = ["f", 0, 1];
1.1.3两种方法比较
- 在定义简单数组类型时,如数组元素为单一原始类型或引用类型,使用简便数组表示法。
- 如果数据元素使复杂类型,如对象类型和联合类型等,使用泛型数组表示法。
2.只读数组
- ReadonlyArray<T>内置类型
- readonly修饰符
- ReadOnly<T>工具类型
const red: ReadonlyArray<number> = [255, 0 ,0];
const green: readonly number[] = [0, 255, 0];
const blue: Readonly<number[]> = [0, 0, 255];
3.元组
在typescript中,元组类型是数组类型的子类型。元组是长度固定的数组,并且元组中每个元素都有确定的类型。
3.1元组定义
const point: [number, number] = [0, 0];
3.2只读元组
只读元组类型是只读数组类型的子类型。
- readonly修饰符
- Readonly<T>工具类型
const point1: readonly [number, number] = [0, 0];
const point2: Readonly<[number, number]> = [0, 0];
允许将常规元组类型赋值给只读元组类型,但是不允许将只读元组赋值给常规元组类型。
3.3元组类型中的可选元素
const tuple: [boolean, string?, number?] = [true, "yes", 1];
3.4元组类型中的剩余元素
const tuple: [number, ...string[]] = [0, "a", "b"];