これはTypeScriptの機能を超えているのですか、何か間違っていますか?ここでの作業を持っているように、私が持っているだろういくつかのコードは次のとおりです。Typescriptサブジェネリック型の推論
interface ISquare {
area: number;
}
interface ICircle {
radius: number;
}
abstract class Morph<T1, T2> {
firstOption: T1;
secondOption: T2;
}
class CircleAndSquare extends Morph<ICircle, ISquare> { }
function returnSecondOption<TMorph extends Morph<T1, T2>, T1, T2> (morph: TMorph): T2 {
return morph.secondOption;
}
returnSecondOption(new CircleAndSquare()) // adding a . here should give me intellisense for a square
インテリセンスが、私はreturnSecondOption
への関数呼び出しの終わりにドットを置くISquare
のメンバーを表示する必要がありますが、それはない、それT1とT2が{}
と表示されているようです。
'function returnSecondOption(morph:Morph ):T2'が正しいです。私は、OPのシナリオでより複雑なものが保証されているものは見当たりません。 –