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

跟随Ben Awad的lireddit教程时GraphQL类型生成报错如何解决?

修复方案

1. 处理未使用变量警告

@Arg装饰器里的参数类型回调未使用的参数可以加下划线前缀规避TS警告,修改参数写法:

// 修改前
@Arg("limit", type => Int) limit: number,
// 修改后
@Arg("limit", _type => Int) limit: number,

同时确认Int是从type-graphql包导入,不要引入其他包的Int类型避免冲突:

import { Arg, Query, Resolver, Int } from "type-graphql";

2. 解决参数/类型识别错误

你遇到的Unknown type "Int"、Unknown argument "cursor/limit"错误,核心原因是graphql-codegen没有拿到正确的后端Schema:

  • 首先确认PostResolver已经加入到buildSchema的resolvers数组中,否则后端生成的Schema不会包含posts接口的参数定义:
const schema = await buildSchema({
  resolvers: [PostResolver], // 必须显式引入你写的Resolver
  validate: false
})
  • 如果你codegen.yml中配置的schema是后端接口地址(比如http://localhost:4000/graphql),必须先启动后端服务器再执行codegen命令,否则无法拉取到正确的Schema;也可以修改配置直接加载本地Schema文件:
schema: ./src/schema.gql # 替换为你本地导出的Schema文件路径

3. 修复代码运行错误

你当前的TypeORM查询参数格式错误,会导致运行时查询失败,修改where调用逻辑:

if (cursor) {
  // 修正参数格式,把变量用对象包裹
  qb.where('"createdAt" < :cursor', { cursor: new Date(parseInt(cursor)) })
}

4. 处理dist文件夹未生成问题

dist是TypeScript编译产物,和graphql-codegen无关,执行tsc命令或者你package.json中配置的build脚本(比如yarn build)即可生成dist文件夹。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:06:03