7.typescript-数组的类型

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等:

 

打印出来的是个这东西

可是这样就完蛋了,咋回事儿~

 

 

posted @ 2017-08-14 17:24  约爱丽丝下午茶  阅读(3869)  评论(0编辑  收藏  举报