Discord机器人报错:TypeError: 无法读取undefined的'GuildText'属性
问题排查与解决
错误原因
你遇到的TypeError: 无法读取undefined的属性'GuildText',核心原因是Discord.js v14及以上版本中,ChannelType的结构发生了变更——不存在ChannelType.message这个嵌套对象,GuildText是ChannelType直接导出的枚举值。
修复步骤
修改代码中创建频道时的type字段:
原错误代码:
type: ChannelType.message.GuildText,
替换为正确写法:
type: ChannelType.GuildText,
完整修改后的频道创建代码片段
// Create the jail channel const jailChannel = await interaction.guild.channels.create({ name: `${member.user.username}-jail`, type: ChannelType.GuildText, // 修正后的频道类型 parent: jailCategory, // Category ID permissionOverwrites: [ { id: member.id, allow: ['VIEW_CHANNEL', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], }, { id: interaction.guild.id, deny: ['VIEW_CHANNEL'], // 拒绝其他所有人查看 }, { id: accessRole, allow: ['VIEW_CHANNEL', 'READ_MESSAGE_HISTORY'], deny: ['SEND_MESSAGES'], // 允许查看但禁止发送消息 }, ], });
额外验证点
- 确认你的Discord.js版本为v14+,从代码中
const { ChannelType } = require('discord.js')的导入方式来看,符合v14+版本的规范;若使用v13及以下版本,频道类型需写成字符串'GUILD_TEXT'。 - 检查
ChannelType的导入语句无拼写错误,你的代码中导入写法是正确的。
内容的提问来源于stack exchange,提问作者Lewis Byers
相关产品推荐
相关产品推荐

