2016-02-27 50 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; 

希望这有助于。

相关问题