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