如何在TypeScript中的类型签名中指定数组的长度?
var a: Array<any>[20];
...
foo(a[10]); // fine
foo(a[100]); // type error: index is out of bounds
答案 0 :(得分:3)
你不能,因为数组不是固定的长度。对数组进行过度索引不会导致编译时错误。
这是因为JavaScript中的数组实际上只是特殊对象,具有更严格的属性名称和额外的length
属性。 TypeScript只改变数组的一个方面:它们只能包含一种类型的元素。
答案 1 :(得分:0)
如今,至少对于小型阵列而言,tuple类型是可行的替代选择:
declare const t: [boolean, number];
...
t[1] = 5; // fine
t[100] = foo; // error 2493: Tuple type '[boolean, number]' of length '2' has no element at index '100'