你好,我正在开发我的不和谐机器人,我在使用禁令命令时出错
这是我为禁令写的代码
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");
}
}
}
}
答案 0 :(得分: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
答案 1 :(得分:0)
你应该使用mention === undefined
,而不是只有一个=
(赋值)。
JS 正在抛出这个错误,因为它在 bannable
中找不到属性 mention
,因为空检查不正确。