generics - Ordbok över typer i TypeScript?
jag har en klasshierarki som ser ut så här:
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;
}
}
Är det möjligt att skapa en ordlista över typer som implementerar TypeI i TypeScript? Något som detta:
var typedDictionary: { [<T extends TypeI>] : T };
typedDictionary[ClassA] = new ClassA();
var a: ClassA = typedDictionary[ClassA];
Svar #1
Ordbok över typer som implementerar TypeI i TypeScript?
Nycklar för objekt i javascript kan bara vara en sträng. Om du skickar in något som inte är en sträng kommer toString att kallas på det. Så nej, du kan inte ha en typ T som en nyckel ... bara en sträng.
Du skulle dock kunna abstrahera över det i en klass och det är något som denna generiska Dictionary gör: https://github.com/basarat/typescript-collections#a-sample-on-dictionary