# 数组的类型
# 类型 + 方括号 表示法
let nums: number[] = [1,2,3]
1
- 不允许出现其他类型
let nums: number[] = [1, '2', 3] // error
1
- 数组的一些方法的参数 也会限制
let nums: number[] = [1,2,3]
nums.push('4') // error
1
2
2
# 数组泛型
let nums: Array<number> = [1,2,3]
1
# 类数组
- 类数组不是数组类型, arguments 是类数组
// error
function fn() {
let args: number[] = arguments;
// Type 'IArguments' is missing the following properties from type 'number[]': pop, push, concat, join, and 24 more.
}
// correct
function fn() {
let args: {
[index: number]: number,
length: number,
callee: Function
} = arguments;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
- 常用的类数组有自己的接口定义 IArguments NodeList
function sum() {
let args: IArguments = arguments;
}
interface IArguments {
[index: number]: any;
length: number;
callee: Function;
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# any
let list = [
1,
'hello',
{ name: 'you' }
]
1
2
3
4
5
2
3
4
5