You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Discord.js中“TypeError: message.member.hasPermission is not a function”错误

问题解决方案

错误原因

TypeError: message.member.hasPermission is not a function 报错的核心原因是你使用的Discord.js版本为v13及以上版本,v12版本中原GuildMember.hasPermission()方法已被官方废弃移除,替换为新的权限校验API。

修复步骤

  • 替换权限校验语句
    将代码中
if(!message.member.hasPermission(perm))

替换为:

if(!message.member.permissions.has(perm))
  • 版本兼容注意事项
    如果你使用的是Discord.js v14及以上版本,原有的全大写下划线分隔的权限常量标识已改为驼峰式枚举,你的validPermissions数组需要对应调整,示例:
const validPermissions = [
  "CreateInstantInvite",
  "KickMembers",
  "BanMembers",
  "Administrator",
  "ManageChannels",
  "ManageGuild"
]

修改后完整参考代码

const validPermissions = [
  // v13及以下用全大写下划线格式,v14及以上替换为上面的驼峰格式
  "CREATE_INSTANT_INVITE",
  "KICK_MEMBERS",
  "BAN_MEMBERS",
  "ADMINISTRATOR",
  "MANAGE_CHANNELS",
  "MANAGE_GUILD",
]

if(command.permissions.length){
  let invalidPerms = []
  for(const perm of command.permissions){
    if(!validPermissions.includes(perm)){
      return console.log(`Invalid Permissions ${perm}`);
    }
    // 修复后的权限校验行
    if(!message.member.permissions.has(perm)){
      invalidPerms.push(perm);
    }
  }
  if (invalidPerms.length){
    return message.channel.send(`Missing Permissions: \`${invalidPerms}\``);
  }
}

内容的提问来源于stack exchange,提问作者XZen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:06:03