用接口来表示对象,现在我们来说说数组的 5 种表示方法
1.数组 + [ ]
// 1, 类型加括号表示 const arrNum: number[] = [1, 2, 3, 4] const arr: [number, string, number] = [1, '2', 3] console.log(arrNum) // [1,2,3,4] console.log(arr) // [[1, '2', 3]] arrNum.push('5') // 报错 : 类型“string”的参数不能赋给类型“number”的参数
注意: 如果你想push 一个 非数字就会报错。
2.泛型表示
// 2.泛型表示 const arrNum1: Array<number> = [5, 6, 7, 8, 9] console.log(arrNum1) // [5, 6, 7, 8, 9]
这边等我看到泛型,在细品。
3.接口表示
// 3.接口表示 // 定义接口 interface arrNumFace { [index: number]: number } const arrNum2: arrNumFace = [10, 11, 12, 13, 14] console.log(arrNum2) // [10, 11, 12, 13, 14]
是不是感觉和接口的 任意属性差不多 , 这个就表示 用 序号为key 的就是数组。
4.类数组 (例如 aguments)
// 4.类数组表示(内部已经规定好了) // 定义函数 , 返回传参 arguments // 报错写法 function arrNum3() { let argu: number[] = arguments // 报错 : 类型“IArguments”缺少类型“number[]”的以下属性: pop, push, concat, join 及其他 15 项。 return argu } // 正确写法 // 定义接口的形式 interface argum { [index: number]: number length: number callee: Function } function arrNum4() { let argum1: argum = arguments return argum1 }
事实上常用的类数组都有自己的接口定义,如 IArguments, NodeList, HTMLCollection 等
5.any 类型表示数组
// 利用any来表示数组的类型 const arrNum5: any[] = [1, '2', {}, [1, 2, 3, 4], () => {}]
果然爽啊! , 还有很多点要做项目才知道啊!!!