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

将Discord Bot从v13升级到v14时出现action_type类型转换错误

Discord.js v13 升级到 v14 报错 action_type [NUMBER_TYPE_COERCE]: Value "ROLE_UPDATE" is not int 解决方法
  • 错误核心原因:Discord.js v14 对审计日志操作类型(AuditLogAction)的校验逻辑严格化,v13中允许直接传入字符串如 "ROLE_UPDATE",但v14要求必须使用对应的整数枚举值或枚举成员,不再接受字符串类型的 action_type 参数。

  • 具体修复步骤:

    1. 定位代码中调用审计日志相关方法(比如 fetchAuditLogs)时传入 action_type: "ROLE_UPDATE" 的位置。
    2. 替换为 v14 支持的写法:
      • 方式一:直接使用对应整数
        await guild.fetchAuditLogs({ type: 31 }); // 31 是 ROLE_UPDATE 对应的枚举值
        
      • 方式二:导入并使用AuditLogAction枚举(更易读)
        const { AuditLogAction } = require('discord.js');
        // 调用时替换为枚举成员(驼峰命名)
        await guild.fetchAuditLogs({ type: AuditLogAction.RoleUpdate });
        
    3. 全局检查代码中其他审计日志操作类型(如 CHANNEL_CREATE、MEMBER_BAN_ADD 等),统一替换为对应的枚举值或驼峰式枚举成员,避免同类错误重复出现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:32:02