错误“未捕获的类型错误:无法读取未定义的属性‘bannable’”

时间:2021-05-17 21:06:06

标签: javascript node.js discord discord.js

你好,我正在开发我的不和谐机器人,我在使用禁令命令时出错

这是我为禁令写的代码

        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 个答案:

答案 0 :(得分:2)

JS 使用 = 赋值,使用 == 检查值或使用 === 检查值和类型:

if (mention == undefined)
    message.reply("Member not mentionned");

或者你可以使用 undefinedfalsey,所以:

if (!mention)
    message.reply("Member not mentionned");

如果 mentionnull,这也适用。

由于您不重新分配 mention,我还建议您使用 const,因为您会收到错误:

const mention = message.mentions.members.first();

if (mention = undefined){ <-- now error throws here

答案 1 :(得分:0)

你应该使用mention === undefined,而不是只有一个=(赋值)。

JS 正在抛出这个错误,因为它在 bannable 中找不到属性 mention,因为空检查不正确。