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

Discord.JS v13的Message collector类型不匹配报错如何修复?

问题解决方法

错误根因

你定义的filter函数没有返回布尔值:箭头函数用花括号包裹逻辑时,没有显式添加return语句的情况下,函数默认返回void,而discord.js的消息收集器要求filter函数必须返回boolean或Promise<boolean>类型的结果,用来判断当前消息是否符合收集规则,因此触发了类型报错。

修复方案

有两种等价的修改方式,选任意一种即可:

方案1:使用箭头函数隐式返回

去掉filter函数逻辑外的花括号,箭头函数会自动将表达式的结果作为返回值:

const filter = (m: Message) => m.author.id === message.author.id

方案2:显式添加return语句

如果要保留花括号写法,手动添加return返回判断结果:

const filter = (m: Message) => {
    return m.author.id === message.author.id
}

补充说明

修改前代码运行不会崩溃的原因是:void类型的返回值在运行时会被判定为false,导致所有消息都无法通过filter校验,收集器永远不会触发collect事件,直到计时结束后触发end事件返回收集到的消息数量为0,因此只会出现功能不生效的表现,不会抛运行时异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:54:03