2015-10-05 61 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]'這樣的東西當然是一個簡單的方法,它可以在編譯時同樣強制執行。然後在運行時,無論如何,數組可以是任意長度幷包含任何東西。 –