支持"两种类型的索引"的用例是什么? TypeScript中的(数字和字符串)?

时间:2015-06-05 05:29:09

标签: javascript typescript

我开始使用typescript并进入以下声明(取自Interfaces#array-types):

  

可以支持这两种类型的索引,但限制是从数字索引返回的类型必须是从字符串索引返回的类型的子类型。

我可以想到几种方法同时使用数字和字符串索引器类型,但没有任何意义上面的引用,我很高兴有一些代码示例演示它们的含义。

1 个答案:

答案 0 :(得分:2)

  

我很高兴有一些代码示例演示了它们的含义。

允许以下内容:

interface A{
}
interface B{
    foo: number;
}

interface Something {   
    [index: string]: A;
    [index: number]: B;     
}

但这不是:

interface A{
    foo: number;
}
interface B{    
}

interface Something {   
    [index: string]: A;
    [index: number]: B;     
}

要引用:“从数字索引返回的类型必须是从字符串索引返回的类型的子类型”因此在我们的示例中B必须是A的子类型。