You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 12:58:13