主题
数组和元组
数组(Array)
- 定义数组类型的两种方式
类型[]
Array<类型>
typescript
let arr:string[] = ["1","2"]
let arr2:Array<string> = ["1","2"]
- 可以配合联合类型使用
typescript
let arr:(number | string)[]
arr3 = [1, 'b', 2, 'c']
- 定义和使用时,数组的项中不允许出现其他的类型
- 数组的一些方法的参数也会根据数组在定义时约定的类型进行限制
元组(Tuple)
- 特性:限制数组元素的个数和每一项的类型
typescript
let x: [string, number];
// 类型必须匹配且个数必须为2
x = ['hello', 10]; // OK
x = [10, 'hello']; // Error
x = ['hello', 10,10]; // Error
x[2] // Error,越界访问会提示错误
- 可解构,若解构个数越界,则报错
typescript
const tuple: [string, number] = ['musi', 2]
const [name, id] = tuple
- 可使用 Rest 参数
typescript
type RestTupleType = [number, ...string[]];
let restTuple: RestTupleType = [666, "Semlinker", "Kakuqo", "Lolo"];
- 可通过
?
声明元素可选
typescript
let tuple: [string, boolean?]
tuple = ['musi', true]
tuple = ['musi']
- 添加 readonly 关键字,定义其为只读元组
typescript
const tuple: readonly [string] = ['musi']
tuple[0] = 'kingmusi' // Error
tuple.push('kingmusi') // Error