2017-02-11 11 views
3

私はオブジェクトを取り込み、別のオブジェクトとマージする関数を持っています。 Typescriptが出力オブジェクトに同じキーが含まれていることを知っているだけでなく、新しいキーも持っているということを取り入れているオブジェクトを表す汎用Tを持つことができるようにしたいと思います。TypeScriptのジェネリックスでスプレッド操作を行う方法はありますか?

export interface ObjFactory<T> { 
    someNewProp: string 
    otherNewProp: string 
    ...T 
} 

export interface InputObject { 
    inputProp: string 
} 

そして、出力オブジェクトは、

{ 
    someNewProp: string 
    otherNewProp: string 
    inputProp: string 
} 

はこれに似た何かを達成するための方法はありとして表現するでしょうか?

答えて

2

インターフェイスの代わりにtypeをエクスポートするのが快適であれば、これを実現するにはType Intersectionを使用できます。

export type ObjFactory<T> = T & { 
    someNewProp: string 
    otherNewProp: string 
} 

export interface InputObject { 
    inputProp: string 
} 

type私の知る限りの唯一の欠点は、クラスおよびインタフェースは、それらを拡張することはできませんです。

関連する問題