TS/GraphQL中@ObjectType触发Expression expected错误求助
解决TypeGraphQL装饰器触发"Expression expected"错误
- 这个错误的核心原因是TypeScript未启用装饰器相关配置,TypeGraphQL依赖的装饰器属于TypeScript实验性功能,默认未开启。
- 你遇到的“移除一个带
@的对象,下一个就报错”的现象,本质是所有装饰器语法都未被编译器识别,因此只要存在@装饰器的代码行就会触发语法错误。
修复步骤:
- 找到项目根目录的
tsconfig.json文件 - 在
compilerOptions中确保开启以下配置:
{ "compilerOptions": { "experimentalDecorators": true, "emitDecoratorMetadata": true, "target": "ES6" // 需设置为ES6或更高版本,装饰器语法依赖ES6+特性 } }
- 重启TypeScript编译器或开发服务器,让配置生效
配置说明:
experimentalDecorators:启用TypeScript对装饰器语法的支持emitDecoratorMetadata:允许TypeScript为装饰器生成元数据,这是TypeGraphQL实现类型反射功能的必要配置
错误详情:
x Expression expected ,-[C:\Users\meowt\OneDrive\Desktop\2023next\next-gql-dogs\pages\api\graphql.ts:2:1] 2 | import "reflect-metadata"; 3 | import { buildSchema, Resolver, Query, Arg, ObjectType, Field, ID } from "type-graphql"; 4 | 5 | @ObjectType() : ^
内容的提问来源于stack exchange,提问作者infinesse
相关产品推荐
相关产品推荐

