ExcludeCart<T>基本的にはジェネリック型を定義したいのですTが、特定のキー (私の場合はcart) が削除されています。したがって、たとえば、ExcludeCart<{foo: number, bar: string, cart: number}>になります{foo: number, bar: string}。TypeScriptでこれを行う方法はありますか?
間違ったツリーを吠えている場合に備えて、これを行いたい理由は次のとおりです。既存の JavaScript コードベースを TypeScript に変換しています。これにcartifyは、React コンポーネント クラスを受け取り、Inner別のコンポーネント クラスを返すというデコレータ関数が含まれていますWrapper。
Innercartprops と 0 個以上のその他の propsを取る必要があります。Wrapperはprop (に渡す prop をcartClient生成するために使用される) と、を除く、受け入れるすべての prop を受け入れます。cartInnerInner cart
言い換えれば、 を定義する方法がExcludeCartわかったら、それを使って次のことを行いたいと思います。
function cartify<P extends {cart: any}>(Inner: ComponentClass<P>) : ComponentClass<ExcludeCart<P> & {cartClient: any}>