Discord.js 14升级后TypeScript项目中discord-akairo报错
Discord.js v14升级后discord-akairo v8.1.0的TypeScript错误解决
错误原因
discord-akairo v8.1.0的类型定义基于Discord.js v12/v13编写,而Discord.js v14对大量API类型做了重命名、合并或移除,导致两者类型不兼容,出现以下6个错误:
错误列表
node_modules/discord-akairo/src/index.d.ts:4:18- TS2305: 模块"discord.js"无导出成员MessageAttachmentnode_modules/discord-akairo/src/index.d.ts:4:37- TS2305: 模块"discord.js"无导出成员MessageEmbednode_modules/discord-akairo/src/index.d.ts:5:9- TS2724: "discord.js"无导出成员MessageAdditions(提示建议MessageEditOptions)node_modules/discord-akairo/src/index.d.ts:5:47- TS2724: "discord.js"无导出成员MessageOptions(提示建议BaseMessageOptions)node_modules/discord-akairo/src/index.d.ts:5:63- TS2305: 模块"discord.js"无导出成员SplitOptionsnode_modules/discord-akairo/src/index.d.ts:8:31- TS2724: "discord.js"无导出成员StringResolvable(提示建议UserResolvable)
解决办法
1. 升级discord-akairo到适配v14的版本
这是最彻底的解决方案。discord-akairo v9及以上版本已适配Discord.js v14,执行以下命令升级:
npm uninstall discord-akairo npm install discord-akairo@latest
注意:v9版本存在API变更,需同步调整代码(比如命令注册方式、事件处理逻辑等)。
2. 临时类型修补(不推荐)
若暂时无法升级,可手动修改node_modules/discord-akairo/src/index.d.ts文件,将过时类型替换为Discord.js v14的对应类型:
MessageAttachment→AttachmentMessageEmbed→EmbedBuilderMessageAdditions/MessageOptions→BaseMessageOptions- 移除
SplitOptions,或替换为import type { SplitOptions } from 'discord.js/util/SplitMessage'(若存在) StringResolvable→ 替换为string | User | GuildMember | Channel | Role(根据实际场景调整)
该方法为临时方案,下次执行依赖安装时修改会被覆盖。
内容的提问来源于stack exchange,提问作者Blockchain Kid
相关产品推荐
相关产品推荐

