用于解析器 GraphQL 瑜伽的 TypeScript 类型(在上下文中使用 prisma2)
Posted
技术标签:
【中文标题】用于解析器 GraphQL 瑜伽的 TypeScript 类型(在上下文中使用 prisma2)【英文标题】:TypeScript Types for Resolvers GraphQL yoga (use prisma2 on context) 【发布时间】:2020-10-25 02:51:58 【问题描述】:对不起我的英语
所以,我需要在 GraphQL 瑜伽上为解析器创建类型。我用 graphql-codegen 创建了它,但它的工作原理很奇怪。而且他目前没有为 Prisma2 创建类型上下文。
codegen.yml
schema: ./src/schema.graphql
generates:
./src/resolvers/resolvers-types.ts:
plugins:
- typescript
- typescript-resolvers
config:
contextType: './context#Context'
context.ts
import PrismaClient from '@prisma/client'
export type Context = prisma:PrismaClient
解析器.ts
import IResolvers, Mutation from './resolvers-types'
interface StringIndexSignatureInterface
[index: string]: any
type StringIndexed<T> = T & StringIndexSignatureInterface
const resolvers: StringIndexed<IResolvers> =
Query:
users: (parent, args, ctx, info) =>
return ctx.prisma.user.findMany
;
他抛出关于类型不兼容的错误
没有 StringIndexed 他不工作
请告诉我如何做到这一点
【问题讨论】:
【参考方案1】:我找到解决方案 我添加到 codegen.yml contextType
codegen.yml
generates:
./src/resolvers/resolvers-types/resolvers-types.ts:
plugins:
- typescript
- typescript-resolvers
config:
contextType: './context#Context'
enumsAsTypes: true
context.ts
import PrismaClient from '@prisma/client'
export type Context = prisma:PrismaClient
【讨论】:
以上是关于用于解析器 GraphQL 瑜伽的 TypeScript 类型(在上下文中使用 prisma2)的主要内容,如果未能解决你的问题,请参考以下文章
用于可迭代对象的 Java GraphQL 解析器:休眠异常
用于同一 Mongoose 集合上的接口的 GraphQL 解析器