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

discord.js中实例化REST对象报Interface cannot be instantiated错误求助

问题原因

该报错是 WebStorm 2021.2.2 旧版本的 TypeScript 类型识别缺陷导致的,编辑器误将 @discordjs/rest 导出的 REST 类识别成了接口,并非你的代码本身存在问题。

解决方案

第一步:先对齐依赖版本

目前你用的代码仅兼容 v1.x 版本的 @discordjs/rest,如果安装了 v2.x 版本会出现实际运行报错,先执行以下命令锁定版本:

npm install @discordjs/rest@1.7.0

第二步:解决编辑器报错(三选一即可)

  • 升级编辑器:将 WebStorm 升级到 2022.1 及以上版本,新版已经修复了 ESM 模块导出类的类型识别问题,不会再出现误判。
  • 修改导入写法:将原导入语句
const {REST} = require("@discordjs/rest");

修改为显式导入:

const REST = require("@discordjs/rest").REST;

即可绕开编辑器的类型识别错误。

  • 拆分实例化逻辑:如果仍有构造函数参数报错,拆分实例化和配置的步骤:
// 替换原来的 const rest = new REST({version:'9'}).setToken(token)
const rest = new REST();
rest.setVersion('9');
rest.setToken(token);

额外排查项

如果实际运行代码仍报错,做以下两个调整:

  • 把 catch 逻辑修改为打印完整错误,方便定位具体问题:
.catch(err => console.error(err))
  • 确认 .env 文件中的 DISCORD_JS_TOKEN、clientId、guildId 三个变量拼写正确、值配置无误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:06:00