一,数组类型表示
1.typescript
中数组类型的表示方式有三种
(1)type[]
(2)泛型表示
(3)接口表示
2.例如表示一个元素为number
类型的数组三种方式分别为
let a:number[] = [1,2,3]
let a:Array<number> = [1,2,3]
interface numberArray{
[index:number]:number
}
let a:numberArray = [1,2,3]
3.其中比较常用的是第一种和第二种,使用接口来表示数组更好的应用场景是声明一个类数组
interface A {
[index:number]:number,
length:number,
fn:Function
}
二,多元素类型数组
1.除了声明含有一种类型的数组,也可以使用联合类型来声明一个含有多种类型元素的数组
2.这时候要注意的是使用索引访问元素时,返回元素会被推断成联合类型,当我们访问属性时,也只能访问公共属性,否则会报错,
3.当我们明确知道元素类型时,可以使用断言来解决这个问题
let a:Array<string | number> =[1,2,'3']
a[0] //a[0] 会被推断成 string | number
a[2].length //Property 'length' does not exist on type 'string | number'.
//Property 'length' does not exist on type 'number'.
//断言解决
(a[2] as string).length