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