2015-10-05 68 views
3

如何在TypeScript中的类型签名中指定数组的长度?指定类型签名中的数组长度

var a: Array<any>[20]; 
... 
foo(a[10]); // fine 
foo(a[100]); // type error: index is out of bounds 
+0

相关:[TypeScript:如何在编译时声明类型检查的固定大小数组](https://stackoverflow.com/questions/42441408/typescript-how-to-declare-array-of-fixed-size - 对于式检查的在编译时间)。 – sleske

回答

3

你不能,因为数组不固定长度。过度索引数组不会导致编译时错误。

这来自于JavaScript中的数组实际上只是特殊对象,具有更严格定义的属性名称和额外的length属性。 TypeScript只改变数组的一个方面:它们只能包含单一类型的元素。

+0

好的谢谢。虽然像'a [x]'这样的东西当然是一个简单的方法,它可以在编译时同样强制执行。然后在运行时,无论如何,数组可以是任意长度并包含任何东西。 –