2016-02-27 49 views
0

我正在學習TypeScript。爲什麼我想要使用數組類型而不是標準數組?

interface INumberList { 
    [index: number]: number 
} 

// then use it 
let numbers: INumberList = [1, 2, 3]; 

所以我的問題是,什麼是我可以使用常規的數組或類型數組像上面的數組類型的優勢:

我遇到有關數組類型的文檔,其中因爲一旦可以聲明一個接口進來
// regular arrays 
let numbers: number[] = [1, 2, 3]; 

// or 
let numbers: Array<number> = [1, 2, 3]; 

回答

2

在您的示例中沒有使用此類接口的優勢。實際上,您只能將數組對象的可用屬性和方法縮小到您的界面中的一個索引器。

我發現上述接口的常見用法是定義像對象一樣的「地圖」。例如:

/** 
* String key to any value map 
*/ 
export interface INameValueMap<T> 
{ 
    [key: string]: T; 
} 

然後後面的代碼中的某處:

private m_changedRequisites: INameValueMap<boolean>; 

在這裏,你有很好的類型訪問您的地圖:

this.m_changedRequisites = {}; 
//... 
this.m_changedRequisites["someRequisiteName"] = true; 

希望這有助於。

相關問題