我正在用TypeGraphQL + Typescript研究GraphQL。它有点美,但是我在打字规则上遇到了麻烦。
所以,我有以下代码:
@Resolver(CountryInfo)
export class StaticDataResolver {
@Query(_returns => [CountryInfo])
allcountries(@Arg("arg") arg: string) {
console.log(arg)
}
@Query(_returns => [CompleteCountryInfo])
countryDetails(@Arg("countryId") countryId: string) {
console.log(countryId)
}
@Query(_returns => [StateInfo])
statesOfCountry(@Arg("countryId") countryId: string){
console.log(countryId)
}
}
运行服务器时出现错误:
F:\github\places-api\node_modules\type-graphql\dist\helpers\findType.js:10
metadataDesignType = reflectedType[parameterIndex];
^
TypeError: Cannot read property '0' of undefined
at Object.findType (F:\github\places-api\node_modules\type-graphql\dist\helpers\findType.js:10:43)
at Object.getParamInfo (F:\github\places-api\node_modules\type-graphql\dist\helpers\params.js:9:49)
at F:\github\places-api\node_modules\type-graphql\dist\decorators\Arg.js:9:159
at F:\github\places-api\src\graphql\resolvers\static-data.resolver.ts:9:37
at DecorateProperty (F:\github\places-api\node_modules\reflect-metadata\Reflect.js:553:33)
at Object.decorate (F:\github\places-api\node_modules\reflect-metadata\Reflect.js:123:24)
at __decorate (F:\github\places-api\src\graphql\resolvers\static-data.resolver.ts:4:92)
at Object.<anonymous> (F:\github\places-api\src\graphql\resolvers\static-data.resolver.ts:12:5)
at Module._compile (internal/modules/cjs/loader.js:1158:30)
at Module.m._compile (F:\github\places-api\node_modules\ts-node\src\index.ts:806:23)
我不知道我的代码有什么问题,所以如果有人有答案,我们将不客气! =]
答案 0 :(得分:0)
看起来您在使用babel时没有适当的TypeScript元数据反射插件。
请签出此问题: https://github.com/MichalLytek/type-graphql/issues/55
答案 1 :(得分:0)
尝试在emitDecoratorMetadata: true
中设置tsconfig.json
。
它帮助我解决了这个麻烦。