關鍵我想定義泛型類型ExcludeCart<T>
這基本上是T
但刪除的指定鍵(在我的情況,cart
)。因此,例如,ExcludeCart<{foo: number, bar: string, cart: number}>
將是{foo: number, bar: string}
。有沒有辦法在TypeScript中做到這一點?打字稿:刪除從類型/減法型
這就是爲什麼我想這樣做,以防萬一我吠叫錯誤的樹:我將現有的JavaScript代碼庫轉換爲TypeScript,其中包含一個名爲cartify
的裝飾器函數,它需要React組件類Inner
並返回另一個組件類Wrapper
。
Inner
應該採取cart
道具,以及零個或多個其他道具。 Wrapper
接受cartClient
支柱(其被用於生成cart
支柱傳遞到Inner
),以及任何其支撐接受Inner
,除了cart
。
換句話說,一旦我能想出如何定義ExcludeCart
,我想用它做:
function cartify<P extends {cart: any}>(Inner: ComponentClass<P>) : ComponentClass<ExcludeCart<P> & {cartClient: any}>
還沒有,但有一個建議 - https://github.com/Microsoft/TypeScript/issues/4183。另見https://github.com/Microsoft/TypeScript/issues/12215 – artem