2つのジェネリックで関数を呼び出そうとしましたが、型が割り当てられないというエラーが発生しました。複数のジェネリックを使用する場合、 `_型の引数を 'T1'型のパラメータに代入することはできません。
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() { };
}
"これは"文字列 "型であり、T1とT2は必ずしも必要ではないからです。 barはfooの文字列バージョンを実装していますか? –
編集でコードを修正しましたが、問題は解決されていません。 'T1'は何でもよいので、' someObject'は常に 'T1'になるとは限りません。 – cartant
なぜ 'bar'は一般的なのですか?なぜそれを単に 'class bar extends foo'にしないのですか? –
artem