1

我正在使用这个配置文件:

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?

4

0 回答 0