我正在使用这个配置文件:
overwrite: true
schema: "src/**/*.(resolver|type).ts"
documents: null
generates:
src/graphql/generated/graphql.ts:
plugins:
- "typescript"
- "typescript-resolvers"
config:
typesSuffix: GQL
resolverTypeSuffix: Resolver
工作正常,但as any as TypeGQL
每次我想将返回的对象的属性委托给另一个解析器时都进行强制转换真的很烦人。
在这里我必须强制转换,as any
因为它缺少regions
我想委托给它自己的解析器的字段。
export const CountryResolver: CountryResolverGQL<GQLContext> = {
async regions(parent, _args, { dataSources }) {
const regions = await dataSources.placesService.getRegionsFromCountryId(parent.id!)
return regions.map((region) => ({ ...region, country: parent } as any))
}
}
我也尝试添加选项:
config:
defaultMapper: Partial<{T}>
但这也将我的解析器的参数修改为Partial<Parent>
或类似的东西。
我被迫更改代码,这很好:
export const CountryResolver: CountryResolverGQL<GQLContext> = {
async regions(parent, _args, { dataSources }) {
const regions = await dataSources.placesService.getRegionsFromCountryId(parent.id!)
return regions.map((region) => ({ ...region, country: parent as CountryGQL }))
}
}
如何只使解析器的返回类型为 Partial?