0.忽然觉得插入代码的样式更好看些

1.类型[] 表示法
1 let arr1 : number[] = [1,2,3]; 2 let arr2 : string[] = ["1","2","3"]; 3 let arr3 : any[] = ["1",2,true,{age:1}]; 4 5 let arr4 : number[] = ["1",2,"3"]; 6 // Type '(string | number)[]' is not assignable to type 'number[]'.
使用类型+中括号的方法进行定义,要严格遵守类型的要求,因为typescript会进行类型检查,
据说后面在“元组”中会有类似行5的这种定义方式
2.数组泛型
1 let arr1 : Array<number> = [1,2,3]; 2 let arr2 : Array<string> = ["1","2","3"]; 3 let arr3 : Array<any> = ["1",2,"3"]; 4 5 let arr4 : Array<number> = ["1",2,"3"]; 6 // Type '(string | number)[]' is not assignable to type 'number[]'.
3.用接口表示数组
依旧是千古不变的student,虽然不符合场景,但我还是想用,
我一定是受到了大学老师的影响,哈哈哈
数组类型拥有一个index类型,是用来索引数组的,所以在定义的时候是 [index:number]
1 interface Student1{ 2 [index:number]:number 3 } 4 let arr1:Student1 = [1,2,3]; 5 6 interface Student2{ 7 [index:number]:string 8 } 9 let arr2:Student2 = ["1","2","3"];
4.类数组
类数组不是数组类型,比如arguments
其实常见的类数组都有自己的接口定义,如 IArguments、NodeList、HTMLCollection等:
打印出来的是个这东西
可是这样就完蛋了,咋回事儿~