打字稿中的类型字典?

时间:2015-01-13 01:50:42

标签: generics dictionary typescript

我的类层次结构如下所示:

interface TypeI {
    getName(): string;
}

class ClassA implements TypeI{
    static name: string = "A"
    getname(){
        return ClassA.name;
    }
}

class ClassB implements TypeI{
    static name: string = "B"
    getname(){
        return ClassB.name;
    }
}

是否可以在typescript中创建实现TypeI的类型的Dictionary?像这样:

var typedDictionary: { [<T extends TypeI>] : T };
typedDictionary[ClassA] = new ClassA();
var a: ClassA = typedDictionary[ClassA];

1 个答案:

答案 0 :(得分:1)

  

在typescript中实现TypeI的类型字典?

javascript 中对象的键只能是字符串。如果传入的内容不是字符串,则会调用toString。所以不,您不能将T类型作为关键字...只有string

然而,您可以在类中对其进行抽象,这类似于通用词典:https://github.com/basarat/typescript-collections#a-sample-on-dictionary