Ich habe versucht, eine Funktion mit zwei Generics aufzurufen, aber einen Fehler erhalten, dass der Typ nicht zuweisbar ist.Wie zu lösen `Argument des Typs _ ist nicht zu Parameter des Typs 'T1'zuweisen.` Bei der Verwendung mehrerer Generika
abstract class foo<T1, T2> {
protected readonly generic1 : T1;
protected readonly generic2 : T2
constructor(t1: T1, t2: T2) {
this.generic1 = t1;
this.generic2 = t2;
}
}
class bar<T1, T2> extends foo<T1, T2>
{
constructor()
{
super(new someObject(), new otherObject());
}
public myFunction()
{
// I want to retain type information
this.generic1.someMethod();
this.generic2.otherMethod();
}
}
// Objects that have nothing in common, so can't interface them
class someObject {
public someMethod() { };
}
class otherObject {
public otherMethod() { };
}
Das liegt daran, "" ist vom Typ "String" und T1 und T2 sind nicht unbedingt. Implementiert Bar eine String-Version von foo? –
Sie haben den Code in einer Bearbeitung geändert, das Problem ist jedoch nicht behoben. 'T1' könnte alles sein, also kann' someObject' nicht immer ein 'T1' sein. – cartant
Warum ist 'bar' generisch? Warum sollte es nicht einfach 'class bar extends foo'? –
artem