微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

生成的类型不适合解析器

如何解决生成的类型不适合解析器

我在使用 graphql-code-generator 时遇到问题。生成的类型不适合解析器。我在 viewer: () => ({ 行中收到错误消息。

类型 '() => { createuser: () => { lastName: string;名字:字符串;昵称:字符串;电子邮件:字符串;性别:用户性别;年龄:字符串; }; }' 不可分配给类型 'Resolver & { createuser: UnconfirmedUser |承诺 |信件未发送 |承诺<...> |警告重复电子邮件 |承诺<...>; }>、{}、MyContext、{}>'。

这是我的代码

codegen.yml

overwrite: true
schema: "http://localhost:8000/graphql"
documents: null
generates:
  src/toolses/generated/resolversTypes.ts:
    plugins:
      - "typescript"
      - "typescript-resolvers"
    config:
      useIndexSignature: true
      contextType: ../../resolvers/typescript-resolvers#MyContext
      customresolverFn: ../../resolvers/typescript-resolvers#customresolverFn

typescript-resolvers.ts

export type MyContext = {
  res: Response;
  req: Request;
  admin: any;
  currentUser: string;
  models: any;
};

export type customresolverFn<
  TResult,TParent = {},TArgs = {},TContext = {}
> = (
  parent: TParent,args: TArgs,context: TContext,info: GraphQLResolveInfo
) => Promise<TResult | Error> | TResult | Error;

schema.ts

union UnconfirmedUserUnion =
      UnconfirmedUser
    | LetterNotSent
    | WarningDuplicateEmail

  enum UserGender {
    MALE
    FEMALE
    OTHER
  }

  type UnconfirmedUser {
    lastName: String!
    firstName: String!
    nickName: String!
    email: Email!
    gender: UserGender!
    age: String!
  }

  type LetterNotSent {
    lastName: String!
    firstName: String!
    nickName: String!
    email: Email!
    gender: UserGender!
    age: String!
  }

  type WarningDuplicateEmail {
    message: String!
    lastName: String!
    firstName: String!
    email: Email!
    gender: UserGender!
    age: String!
  }

  input createuserInput {
    lastName: String!
    firstName: String!
    email: Email!
    gender: UserGender!
    age: String!
    password: String!
  }

  type Query {
    viewer: String
  }

  type Mutation {
    viewer: ViewerMutation
  }

  type ViewerMutation {
    createuser(newUser: String!): UnconfirmedUserUnion!
  }

resolvers.ts

const resolvers:Resolvers  = {
  ...scalarsType,...InterfacesAndUnions,Query: queryResolvers,Mutation: {
    viewer: () => ({
      createuser: () => ({
        lastName: "string",firstName: "string",nickName: "string",email: "string",gender: UserGender.FEMALE,age: "string",}),},};

如何更正此错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。