Node.js 频道上不存在bulkDelete

Node.js 频道上不存在bulkDelete,node.js,discord.js,bulk-delete,Node.js,Discord.js,Bulk Delete,首先需要注意的是,这是一个typescript文件。我在执行清除/清除命令时遇到问题。此命令在discord v11上有效,但在v12上有问题。我看到的问题是,“TextChannel | DMChannel | newschnel”类型上不存在bulkDelete,我不知道它出了什么问题。我不是在寻找一个解决方案,如果能解释为什么它不起作用,我将不胜感激。提前谢谢 import * as Discord from "discord.js"; import { IBotCom

首先需要注意的是,这是一个typescript文件。我在执行清除/清除命令时遇到问题。此命令在discord v11上有效,但在v12上有问题。我看到的问题是,“TextChannel | DMChannel | newschnel”类型上不存在bulkDelete,我不知道它出了什么问题。我不是在寻找一个解决方案,如果能解释为什么它不起作用,我将不胜感激。提前谢谢

import * as Discord from "discord.js";
import { IBotCommand } from "../api";

export default class purge implements IBotCommand {
    
    private readonly _command = "purge"
    
    help(): string {
        return "(Admin only) Deletes the desired numbers of messages.";
    }
    
    isThisCommand(command: string): boolean {
        return command === this._command;
    }

    async runCommand(args: string[], msgObject: Discord.Message, client: Discord.Client): Promise<void> {
        
        //converts args into a number
        let numberOfMessagesToDelete = parseInt(args[0],10);
        //make sure number is interger
        numberOfMessagesToDelete = Math.round(numberOfMessagesToDelete + 1);
        //clean up msgs
        msgObject.delete()
            .catch(console.error);

        if(!msgObject.member.hasPermission("KICK_MEMBERS")) {
            msgObject.channel.send(`${msgObject.author.username}, AH! AH! AH! You didn't say the magic word!`)
                .then(msg => {
                    (msg as Discord.Message).delete({timeout:10000})
                });
            return;
        }
            //message amount
        if(!args[0]){
            msgObject.channel.send(`Improper format! Proper format is "-purge 12"`)
                .then(msg => {
                    (msg as Discord.Message).delete({timeout:10000})
                        .catch(console.error);
                });
            return;    
        }
        //verifies args[0] actual number
        if(isNaN(numberOfMessagesToDelete)){
        
            msgObject.channel.send(`Improper number! Pick a number between 1 and 99!`)
            .then(msg => {
                (msg as Discord.Message).delete({timeout:10000})
                .catch(console.error);
            });
            return;
        }
        //delete desired number of messages

            let auditLog = client.channels.cache.find(channel => channel.id === "623217994742497290") as Discord.TextChannel;
            const bdEmbed = new Discord.MessageEmbed()
            .setTitle(`**Message Purge**`)
            .setDescription(`${numberOfMessagesToDelete} messages were deleted in ${msgObject.channel.toString()} by ${msgObject.author.username}`)
            .setTimestamp()
            .setColor([38,92,216])
            .setThumbnail(msgObject.author.displayAvatarURL())

            msgObject.channel.bulkDelete(numberOfMessagesToDelete)

            auditLog.send(bdEmbed)
            .catch(console.error);   
    }
}
import*作为Discord从“Discord.js”导入;
从“./api”导入{IBotCommand};
导出默认类清除实现IBOTC命令{
专用只读命令=“清除”
help():字符串{
return“(仅限管理员)删除所需数量的邮件。”;
}
isThisCommand(命令:字符串):布尔值{
return命令===此命令;
}
异步运行命令(args:string[],msgObject:Discord.Message,client:Discord.client):承诺{
//将参数转换为数字
让numberOfMessagesToDelete=parseInt(args[0],10);
//确保数字是整数
numberOfMessagesToDelete=Math.round(numberOfMessagesToDelete+1);
//清理垃圾
msgObject.delete()
.catch(控制台错误);
如果(!msgObject.member.hasPermission(“KICK_MEMBERS”)){
msgObject.channel.send(`${msgObject.author.username},啊!啊!啊!你没有说神奇的单词!`)
。然后(msg=>{
(msg作为Discord.Message)。删除({timeout:10000})
});
返回;
}
//消息量
如果(!args[0]){
msgObject.channel.send(`格式不正确!正确的格式是“-purge 12”`)
。然后(msg=>{
(msg作为Discord.Message)。删除({timeout:10000})
.catch(控制台错误);
});
返回;
}
//验证参数[0]的实际数目
如果(isNaN(numberOfMessagesToDelete)){
msgObject.channel.send(`数字不正确!请选择一个介于1和99之间的数字!`)
。然后(msg=>{
(msg作为Discord.Message)。删除({timeout:10000})
.catch(控制台错误);
});
返回;
}
//删除所需数量的邮件
让auditLog=client.channels.cache.find(channel=>channel.id==“623217994742497290”)作为Discord.TextChannel;
const bdEmbed=new Discord.MessageEmbed()
.setTitle(`**Message Purge**`)
.setDescription(${msgObject.author.username}删除了${msgObject.channel.toString()}中的${numberOfMessagesToDelete}消息)
.setTimestamp()文件
.setColor([38,92216])
.set缩略图(msgObject.author.displayAvatarURL())
msgObject.channel.bulkDelete(numberOfMessagesToDelete)
auditLog.send(b嵌入)
.catch(控制台错误);
}
}

您能否引用实际错误?类型“TextChannel | DMChannel | NewsChannel”上不存在任何属性“bulkDelete”。属性“bulkDelete”在类型“DMChannel”上不存在。ts(2339)是的,
DMChannel.bulkDelete()
不存在,但它很奇怪,因为和都存在。这是一个清除命令,用于discord中的一个通道,而不是DMChannel。除非DMChannel不是成员之间的DM,我的想法不正确。但是如果是这样,v11和12之间发生了什么变化,不允许相同的代码在两者上工作?我有一个更新。我将代码添加到js文件中,它的工作方式与预期的一样,因此问题似乎出在typescript上