最近更新的“@types/node”版本正在创建错误以前的版本运行良好

qhhrdooz  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(556)

我犯了这个错误

error TS2694: Namespace 'NodeJS' has no exported member 'Global'.
4 interface CustomNodeJsGlobal extends NodeJS.Global

在运行这个时

import { PrismaClient } from "@prisma/client";

// add prisma to the NodeJS global type
interface CustomNodeJsGlobal extends NodeJS.Global {
  prisma: PrismaClient;
}

// Prevent multiple instances of Prisma Client in development
declare const global: CustomNodeJsGlobal;

const prisma = global.prisma || new PrismaClient();

if (process.env.NODE_ENV === "development") global.prisma = prisma;

export default prisma;

这是我的问题 @types/node 版本
-->与 "@types/node": "^15.4.0" (我记不清了,但它是从15开始的(15.x.x))
-->更新到最新版本后会显示错误 "@types/node": "^16.3.0" 使用最新版本的标准方法是什么 "@types/node": "^16.3.0", ?

okxuctiv

okxuctiv1#

截至 node@16 这个 NodeJS.Global 接口已被删除,以支持 globalThis .
您可以在模块文件中声明新的全局变量,如下所示:

declare global {
  var NEW_GLOBAL: string;
}

在非模块文件(无顶级导入/导出)中:

declare var NEW_GLOBAL: string;

重要提示:变量必须声明为 var . letconst 变量不会出现在屏幕上 globalThis .
因此,您的代码可能被改写为:

import { PrismaClient } from "@prisma/client";

declare global {
  var prisma: PrismaClient;
}

const prisma = global.prisma || new PrismaClient();

if (process.env.NODE_ENV === "development") global.prisma = prisma;

export default prisma;

相关问题