typescript - Poate graphql codegen să genereze automat tipuri pentru câmpul de date al rezultatului hook-urilor?


Folosesc hook-uri graphql codegen, ale cărora rezultatele sunt de tipul: ApolloReactCommon.QueryResult, ceea ce înseamnă că este un obiect care are câmpurile data, loading și error.

Cel mai general, voi folosi data în alte componente, unde trebuie să-i definesc tipul. În prezent, trebuie să scriu ceva de genul acesta pentru a obține tipul data:

type MyPost = MyPostQueryHookResult['data']

M-aș fi așteptat să mi se creeze acest tip MyPost. Există vreo modalitate de a-l genera automat?

Configurația mea:

generates:
  src/generated/graphql.tsx:
    plugins:
      - "typescript"
      - "typescript-operations"
      - "typescript-react-apollo"
    config:
      withHooks: true

Răspuns #1

Cel mai bun mod de a face acest lucru este să folosești fragmente atunci când construiești interogarea. Tipurile vor fi generate pentru fiecare fragment și apoi ele pot fi folosite direct.

sursa: de la principalul contribuabil al graphql-codegen