我对 graphql-code-generator 有疑问。生成的类型不适用于解析器。我收到一条错误消息viewer: () => ({
。
输入 '() => { createUser: () => { lastName: string; 名字:字符串;昵称:字符串;电子邮件:字符串;性别:用户性别;年龄:字符串;}; }' 不可分配给类型 'Resolver<ResolverTypeWrapper<Pick<ViewerMutation, "__typename"> & { createUser: UnconfirmedUser | 承诺 | 未发送的信 | 承诺<...> | 警告重复电子邮件 | 承诺<...>; }>、{}、MyContext、{}>'。
这是我的代码
代码生成.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
打字稿解析器.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;
架构.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!
}
解析器.ts
const resolvers:Resolvers = {
...scalarsType,
...InterfacesAndUnions,
Query: queryResolvers,
Mutation: {
viewer: () => ({
createUser: () => ({
lastName: "string",
firstName: "string",
nickName: "string",
email: "string",
gender: UserGender.FEMALE,
age: "string",
}),
}),
},
};
如何纠正这个错误?