0
はケースです:Typescriptで適切な汎用調和を作るには?ここ
interface IValue {a:string}
interface IFactory<T> { make():T }
class Factory{
make(): IValue { return {a: 'a'}; }
}
const b = function<T extends IValue>(factory?: IFactory<T>): T {
return factory.make() || new Factory().make(); // marked as invalid
// With error:TS2322:Type 'IValue' is not assignable to type 'T'.
};
b
機能は、必要に応じて値の工場を受け入れるか、それがデフォルトで行われます。これは私が持っているより複雑なコードの簡単な例です。
私はIValue!= T(はIValue
の子として現れます)を理解していますが、IValueの子供だけでなく、正確にIValueタイプを含むことが期待される調和をどうすればいいですか?
コード**は、「IValue」タイプそのもののために働いています!代わりに、どの子タイプでも機能していません。 –
戻り値の型 'T'について知るには' b'が必要ですか?今は 'ファクトリー'を取ることはできず、 'T extends IValue'を提供することは期待できません。 –