我正在按照这个指南https://vercel.com/guides/nextjs-prisma-postgres创建一个全栈应用程序。在这段代码中,Typescript会抛出一个错误:
import { PrismaClient } from '@prisma/client';
let prisma: PrismaClient;
if (process.env.NODE_ENV === 'production') {
prisma = new PrismaClient();
} else {
if (!global.prisma) {
global.prisma = new PrismaClient();
}
prisma = global.prisma;
}
export default prisma;
TypeScript在global.prisma
上抛出了一个ts7017
错误:
Element implicitly has an 'any' type because type 'typeof globalThis' has no index signature.
有人能帮我理解这个问题并告诉我如何修复吗?目前我在tsconfig中将“strict”设置为false,这暂时解决了问题,但我相信关闭它会失去TS的作用。
global.prisma
是如何声明的吗? 如果你无法获取它的声明,你是否尝试过使用global.prisma as PrismaClient
进行强制转换? - Pabloimport prisma from '../lib/prisma';
- KeithPrismaClient
,否则由于Next.js的热重载,在开发中会耗尽DB连接限制。这是我们关于此问题的文档页面:https://www.prisma.io/docs/support/help-articles/nextjs-prisma-client-dev-practices 我正在与我们的一些TypeScript工程师核对,看看如何解决这个问题。 - nburk