2015-01-13 93 views
1

我有類層次結構,看起來像這樣:打字稿中的字典?

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; 
    } 
} 

是否有可能作出的解釋是,在打字稿實現I型類型?事情是這樣的:

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

回答

1

的是,在實施打字稿I型類型的字典?

javascript中對象的鍵只能是字符串。如果你傳入的不是字符串,則會調用toString。所以不,你不能有一個類型T作爲一個關鍵......只有一個string

,你可以在但是它的抽象類中,這是這樣的通用字典裏:https://github.com/basarat/typescript-collections#a-sample-on-dictionary

+1

也許添加toString方法,以I型? –

+0

@АндрейАндреев你是對的。這是我的意圖,所以我澄清了它。 – basarat