私は React の「上位コンポーネント」用の TypeScript 関数を開発しています。必要:###
型関数
型関数に渡します
。クエリ結果をコンポーネントに伝播するか、指定されたキーの下にネストするかを決定します。
リーリー
正常に動作しますが、正しい型を取得するのに苦労しています。理想的には、(型指定された)コンポーネントを渡し、関数がそのコンポーネントからコンポーネントに必要な最終的な props セットが何であるかを「推測」します。withQuery 呼び出しでは、親コンポーネントの小道具。
たとえば、次のようにすると:
リーリー
p>
withQuery
関数は理想的には十分に「スマート」である必要があります:
渡されたコンポーネントから「完全な」prop タイプ (org および uuid) を推測します
ted を省略できます。
超、超理想的です。withQuery 関数は次のことを検出できます。応答のすべてのキーはクエリによって提供されるため、レンダリングの親コンポーネントによって渡される必要はありません。
###出来ますか?これは現時点では私の TypeScript の能力を少し超えています。
このメソッドをオーバーライドしてこの型推論を処理し、親コンポーネントが
自体が提供していない props のみを渡す必要があるようにすることを手伝ってもらえますか?
または、それが不可能な場合は、withQuery
を呼び出すときに、生成されたコンポーネントの props タイプを渡すことができますか?
あなたの質問が正しく理解できれば、
withQuery
に渡されるコンポーネント タイプを推測し、resultKey
パラメータに渡されるプロパティを props から削除したいということになります。
リーリーReact.ComponentProps
ユーティリティ タイプを使用して、コンポーネントの props タイプを抽出できます。次に、Omit
タイプ ユーティリティを使用して、コンポーネントの props からresultKey
パラメーターに渡されたプロパティを抽出できます。コンポーネント自体から React コンポーネントの Prop タイプを抽出する方法の詳細については、この answer を参照してください。
また、クエリの結果タイプを推論し、その結果タイプに基づいて props からプロパティを削除する場合は、
リーリーResultType
ユーティリティ タイプとkeyof
を使用して機能を実現できます。