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

GraphQL Codegen生成函数返回类型为unknown的问题求助

解决GraphQL Codegen生成的graphql函数返回unknown类型问题

问题分析

核心问题是Codegen未根据你的GraphQL操作生成对应强类型,而是返回unknown,通常由配置缺失、文档解析异常或缓存问题导致。

解决方案

1. 完善Codegen配置

修改配置文件,明确添加必要插件并指定模板标签名,确保Codegen能正确识别并生成类型:

const config: CodegenConfig = {
  schema: "http://localhost:3000/graphql",
  documents: ["core/shared/gql/**/*.ts"],
  generates: {
    "./core/utils/generator/": {
      preset: "client",
      plugins: [
        "typescript",
        "typescript-operations"
      ],
      presetConfig: {
        gqlTagName: "graphql" // 必须和你代码中使用的模板标签名一致
      }
    },
  },
};
  • typescript和typescript-operations是生成类型的基础插件,显式声明可避免版本兼容问题。
  • gqlTagName确保Codegen定位到你代码中的graphql模板标签,从而解析内部的GraphQL操作。

2. 验证GraphQL操作语法

检查你的mutation定义是否符合服务端Schema:

  • 确认createsManyAnswer是服务端存在的mutation字段。
  • 确认AnswerInput和返回字段Assessment在Schema中正确定义。
  • 操作中的变量、参数语法无拼写错误。

3. 清理缓存并重新生成

运行Codegen时添加--clean参数,清除旧缓存文件,确保生成最新类型:

graphql-codegen --clean

4. 检查依赖版本兼容性

确保@graphql-codegen/cli、@graphql-codegen/client-preset等相关依赖处于兼容的最新版本,版本不匹配可能导致类型生成异常。

完成以上步骤后重新运行Codegen,生成的graphql函数会根据你的createsManyAnswer mutation生成对应强类型,替代原来的unknown。

内容的提问来源于stack exchange,提问作者MiguelG

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 17:22:41