错误“未捕获的类型错误:无法读取未定义的属性‘bannable’”[关闭]
2021-05-17
83
您好,我目前正在开发我的 discord 机器人,我在使用 ban 命令时遇到了错误
这是我为 ban 编写的代码
if (message.content.startsWith(prefix + "ban")){
let mention = message.mentions.members.first();
if (mention = undefined){
message.reply("Member not mentionned");
}
else {
if(mention.bannable){
mention.ban();
message.channel.send(mention + " was banned");
}
else {
message.reply("Impossible to ban this member");
}
}
}
}
2个回答
JS 使用
=
分配值,使用
==
检查值或使用
===
检查值和类型:
if (mention == undefined)
message.reply("Member not mentionned");
或者您可以使用
undefined
为
falsey
,因此:
if (!mention)
message.reply("Member not mentionned");
如果
mention
为
null
,这也将有效。
由于您没有重新分配
mention
,因此我还建议您使用
const
,因为您会收到错误:
const mention = message.mentions.members.first();
if (mention = undefined){ <-- now error throws here
Keith
2021-05-17
您应该使用
mention === undefined
,而不是仅使用一个
=
(分配)。
由于空值检查不正确,JS 无法在
mention
内找到未定义的属性
bannable
,因此引发此错误。
Rafael de Freitas
2021-05-17