You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从@prisma/client导入BusinessTypeEnum枚举的问题求助

解决Deno环境下Prisma枚举导入错误的问题

问题分析

你遇到的错误是因为Deno环境下Prisma生成的客户端,枚举并非作为顶级导出存在,而是嵌套在Prisma命名空间对象中,直接解构导入会导致找不到对应导出项。

解决方案

修改你的导入和枚举使用方式:

1. 调整导入语句

将原来的导入代码:

import { Prisma, BusinessTypeEnum } from "@prisma/client";

改为仅导入Prisma命名空间:

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

2. 使用命名空间内的枚举

在代码中通过Prisma.BusinessTypeEnum访问枚举:

async function createXxxx(convo: GrammyConversation, ctx: GrammyContext) {
  try {
    await ctx.replyWithChatAction("typing");

    // 直接通过Prisma命名空间访问枚举
    const bizTypes = Object.keys(Prisma.BusinessTypeEnum).map((o) => o);
    console.log({ bizTypes });

  } catch (e) {
    const message = handleErrorMessage(e);
    await ctx.reply(message);
  }
  return;
}

额外验证步骤

  1. 打开你生成的Prisma客户端文件./prisma/generated/client/deno/edge.ts,确认枚举确实是定义在Prisma对象内部(搜索BusinessTypeEnum,会看到它是Prisma的属性)。
  2. 若修改后仍有问题,重新执行生成命令确保客户端更新:
npx prisma generate

为什么Node环境的写法不适用?

Node.js环境下Prisma客户端会将枚举作为顶级导出,但Deno版本的客户端为了适配模块系统,将所有类型和枚举统一封装在Prisma命名空间下,这是两者的核心差异。

内容的提问来源于stack exchange,提问作者Stephane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:36:24