Skip to content

数组和元组

数组(Array)

  1. 定义数组类型的两种方式
    • 类型[]
    • Array<类型>
typescript
let arr:string[] = ["1","2"]
let arr2:Array<string> = ["1","2"]
  1. 可以配合联合类型使用
typescript
let arr:(number | string)[]
arr3 = [1, 'b', 2, 'c']
  • 定义和使用时,数组的项中不允许出现其他的类型
  • 数组的一些方法的参数也会根据数组在定义时约定的类型进行限制

元组(Tuple)

  1. 特性:限制数组元素的个数每一项的类型
typescript
let x: [string, number]; 
// 类型必须匹配且个数必须为2

x = ['hello', 10]; // OK 
x = [10, 'hello']; // Error

x = ['hello', 10,10]; // Error 
x[2] // Error,越界访问会提示错误
  1. 可解构,若解构个数越界,则报错
typescript
const tuple: [string, number] = ['musi', 2]
const [name, id] = tuple
  1. 可使用 Rest 参数
typescript
type RestTupleType = [number, ...string[]];
let restTuple: RestTupleType = [666, "Semlinker", "Kakuqo", "Lolo"];
  1. 可通过 ? 声明元素可选
typescript
let tuple: [string, boolean?]
tuple = ['musi', true]
tuple = ['musi']
  1. 添加 readonly 关键字,定义其为只读元组
typescript
const tuple: readonly [string] = ['musi']
tuple[0] = 'kingmusi' // Error
tuple.push('kingmusi') // Error