2016-11-29 47 views
0

的強類型數組分型已經有a similar question,唯一的區別是,我想在d.ts文件中聲明的分型,而不是宣佈每一次的。Tyescript:如何定義數組

我一直在寫分型像

interface SomeType { 
key1: string[]; 
key2: number; 
} 

這是Objects with named properties類型。


現在我需要一個Array with two sub-Arrays型,

(類似):

TheType : [string[], string[]] 

所以,我可以寫

let myVar: TheType; 

代替

let myVar: [string[], string[]]; 

我已經試過namespace玩,moduledeclare var沒有運氣,我可以跟他們解釋的問題,如果需要的話,但我只是覺得,不管我錯過了一些非常明顯的東西,或者它不可能?!

注意:變通方法!需要,謝謝!

回答

2

我會混合一個接口擴展Array與泛型創建一個NestedArray類型,您可以使用任何類型。有一個嵌套數組類型將使您的直列類型更具可讀性:

interface NestedArray<T> extends Array<Array<T>> {} 

var x: NestedArray<string> = [['a', 'b'], ['c', 'd'], ['e', 'f']]; 

var y = x[0]; // y is Array<string> 
var z = x[0][1]; // z is string 

使用與其他類型:

var x: NestadArray<Customer> = []; 
+0

'NestedArray'似乎合法的,不錯 –