问:使用 context.prisma 时的智能感知

Q: Intellisense when using context.prisma

我正在用 prisma 创建我的 graphql 层。我有一个关于在解析器中使用带有 typescript 的 prisma 的问题。

文档中建议导入 prisma 以获得智能感知:

import { prisma } from '../generated/prisma-client'

如果你这样做,当你写一个像这样的解析器时,你将不会得到任何建议。

const user = (parent, args, context, info) => context.prisma.bodyweight({id: parent.id}).user()

要获得建议,您必须在不引用上下文的情况下编写它,然后再添加引用,这很容易让您忘记它并产生错误。

有没有办法修复它(也许在 tsconfig 中)?

您可以通过输入上下文来获得智能感知:

import { Prisma } from '../generated/prisma-client';
export interface Context{
  prisma: Prisma;
}

const user = (parent, args, context: Context, info) => context.prisma.bodyweight({id: parent.id}).user()

您还应该查看 graphqlgen。这将允许您自动键入解析器。 https://github.com/prisma/graphqlgen#graphqlgen