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

Discord.js音乐机器人报错TypeError [InvalidType]求助:Supplied options is not an object

修复Discord音乐机器人的TypeError [InvalidType]: Supplied options is not an object错误

这个错误的核心原因是你调用Discord相关库(如Discord.js、discord-player、erela.js)的方法时,传入的options参数不是对象类型(可能是undefined、null、字符串等非对象值)。以下是常见场景的修复方案:

  • 初始化客户端/播放器时传参错误
    很多音乐库要求初始化时传入配置对象,若误传非对象值就会触发错误。
    错误示例:

    const player = new Player(client, "invalid-options"); // 第二个参数应为对象,却传了字符串
    

    修复:确保传入对象(空对象或含配置的对象均可):

    const player = new Player(client, {
      ytdlOptions: { quality: "highestaudio" } // 按需添加配置项
    });
    
  • 调用播放方法时参数格式错误
    调用play类方法时,部分库要求第二个参数是包含播放信息的对象,而非直接传链接/关键词。
    错误示例:

    player.play(interaction, "https://example.com/song.mp3"); // 参数格式不符合要求
    

    修复:按库文档要求传入对象格式的参数:

    player.play(interaction, {
      query: "https://example.com/song.mp3",
      requestedBy: interaction.user
    });
    
  • 配置变量未正确初始化
    若options是一个变量,需确保它被赋值为对象类型,避免undefined或非对象值。
    错误示例:

    let playerConfig; // 未赋值,默认是undefined
    const player = new Player(client, playerConfig);
    

    修复:提前定义对象类型的配置:

    let playerConfig = {
      leaveOnEmpty: true,
      leaveOnEnd: false
    };
    const player = new Player(client, playerConfig);
    
  • 检查库版本兼容性
    旧版本的音乐库与新版Discord.js可能存在参数解析不兼容的问题。比如discord-player v6需要搭配Discord.js v14及以上版本,建议确认你使用的库版本匹配官方要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:31:06