【问题标题】:How to add type bindings to graphql resolver mappings如何将类型绑定添加到 graphql 解析器映射
【发布时间】:2020-04-05 08:58:44
【问题描述】:

是否有一种标准方法可以将类型绑定添加到 graphql 解析器映射?

sampleResolver.ts:

export default {
  sampleResolver: (parent, args, context, info) => {
    ...
    return ...
  }
};

例如

sampleResolver<...>: (parent, args, context, info) => ...

or

sampleResolver: (parent, args, context, info): ... => ...

or

sampleResolver: (parent: ..., args: ..., context:..., info:...) => ...

【问题讨论】:

  • (如阿波罗的/graphql-tools的resolver map?)
  • 您在使用 Express 和 Apollo GraphQL 吗?
  • @KingDarBoja,是的,我正在使用apollo-server-express。

标签: typescript graphql


【解决方案1】:

有多种方法可以做到这一点,请参阅more。在您的情况下,我认为这将是合适的:

sampleResolver.ts:

// Interface checking for return
export interface SampleResolver {
  [name: string]: any
}

// Then assign Interface at return
export default {
  sampleResolver: (parent, args, context, info) => {
    ...
    return <SampleResolver>...
  }
};

注意:export 用于其他文件的类型检查。

otherFiles.ts

import { SampleResolver } from 'sampleResolver';


var response: SampleResolver;

【讨论】:

    【解决方案2】:

    我认为apollo-server-express 没有为解析器实现类型定义,如on this issue 所示。但是,您可以尝试 graphql-code-generator 为您的模式、解析器等自动生成类型定义。

    【讨论】:

      猜你喜欢
      • 2017-07-02
      • 2020-03-07
      • 2019-09-29
      • 1970-01-01
      • 2019-10-24
      • 2020-03-30
      • 2020-10-04
      • 2017-07-18
      • 2021-11-19
      相关资源
      最近更新 更多