使用GraphQL Fragments时Codegen生成的TypeScript类型无法识别片段字段的问题求助
使用GraphQL Fragments时Codegen生成的TypeScript类型无法识别片段字段的问题求助
大家好,我最近在项目里遇到一个头疼的问题,想请教下各位同行:
我平时用GraphQL Codegen生成TypeScript类型,搭配Apollo Client给后端发查询请求。但当我用Fragment来复用字段的时候,生成的TS类型出问题了——它完全识别不出片段里定义的字段,只能识别直接写在查询里的那些字段。
举个具体的例子:
我在fragments/person.graphql里定义了这样一个片段:
fragment NameParts on Person { firstName lastName }
然后在queries/person.ts里引入并使用这个片段:
import { graphql } from '@/gql' export const getPersonDocument = graphql(` query GetPerson { people(id: "7") { ...NameParts avatar(size: LARGE) } } `)
这里的@/gql是Codegen的输出目录。
现在的问题是,生成的TS类型里,people对象只被识别有avatar这个字段,firstName和lastName完全不在类型定义里。但如果我把片段里的字段直接移到查询语句里,所有字段的类型就都能正常识别了。
有没有大佬知道,我该怎么配置或者调整,才能让Codegen正确处理Fragment,让生成的TS类型包含片段里的字段呀?
备注:内容来源于stack exchange,提问作者A.A
相关产品推荐
相关产品推荐

