网站搜索

typescript - 如何向 graphql resolver 映射添加类型绑定


有没有一种标准的方式将类型绑定添加到 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:...) => ...

答案#1

我不认为 apollo-server-express 已经为解析器实现了类型定义,如本问题中所示。不过,你可以尝试使用 graphql-code-generator 来自动为你的模式、解析器等生成类型定义。

答案#2

有多种方法可以做到这一点,查看更多。在你的情况下,我认为这会比较适合:

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;