ホームページ  >  に質問  >  本文

コンポーネントから Props タイプを取得し、そのプロパティを省略します

私は React の「上位コンポーネント」用の TypeScript 関数を開発しています。必要:###

これはこれまでの私の実装です:

リーリー

正常に動作しますが、正しい型を取得するのに苦労しています。理想的には、(型指定された)コンポーネントを渡し、関数がそのコンポーネントからコンポーネントに必要な最終的な props セットが何であるかを「推測」します。

withQuery 呼び出しでは、親コンポーネントの小道具。 たとえば、次のようにすると: リーリー

withQuery

関数は理想的には十分に「スマート」である必要があります:

渡されたコンポーネントから「完全な」prop タイプ (org および uuid) を推測します

    「org」は
  1. resultKey
  2. であるため、prop はクエリから渡され、外部から渡す必要がないことを理解してください。したがって、エクスポートされたコンポーネント タイプから
  3. Omitted を省略できます。 超、超理想的です。
  4. useGetOrg
と入力し、resultKey が渡されない場合 (クエリの結果がプロパティとして伝播されることを意味します)、

withQuery 関数は次のことを検出できます。応答のすべてのキーはクエリによって提供されるため、レンダリングの親コンポーネントによって渡される必要はありません。 ###出来ますか?これは現時点では私の TypeScript の能力を少し超えています。 このメソッドをオーバーライドしてこの型推論を処理し、親コンポーネントが

withQuery

自体が提供していない props のみを渡す必要があるようにすることを手伝ってもらえますか?

または、それが不可能な場合は、withQuery を呼び出すときに、生成されたコンポーネントの props タイプを渡すことができますか?

P粉704066087P粉704066087300日前528

全員に返信(1)返信します

  • P粉203648742

    P粉2036487422024-01-17 10:53:01

    あなたの質問が正しく理解できれば、withQuery に渡されるコンポーネント タイプを推測し、resultKey パラメータに渡されるプロパティを props から削除したいということになります。 < /p>

    React.ComponentProps ユーティリティ タイプを使用して、コンポーネントの props タイプを抽出できます。次に、Omit タイプ ユーティリティを使用して、コンポーネントの props から resultKey パラメーターに渡されたプロパティを抽出できます。

    リーリー

    コンポーネント自体から React コンポーネントの Prop タイプを抽出する方法の詳細については、この answer を参照してください。

    また、クエリの結果タイプを推論し、その結果タイプに基づいて props からプロパティを削除する場合は、ResultType ユーティリティ タイプと keyof を使用して機能を実現できます。

    リーリー

    返事
    0
  • キャンセル返事