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

discord.js v14中interaction.options.getUser('user')报错‘不是函数’求助

解决discord.js v14中interaction.options.getUser报错问题

问题原因

在discord.js v14中,命令选项的定义和获取逻辑有两处关键变更,导致你原v13的代码无法正常运行:

  1. 命令选项的type不再支持字符串数字(如'6'),必须使用官方提供的ApplicationCommandOptionType枚举
  2. 若选项类型未正确定义,interaction.options.getUser()方法无法识别对应选项,进而抛出“不是函数”的错误

修复步骤

1. 导入ApplicationCommandOptionType枚举

在命令文件顶部,导入discord.js提供的枚举类型:

const { ApplicationCommandOptionType } = require('discord.js');

2. 修正选项的type字段

将原代码中选项的type: '6'替换为枚举值:

options: [
    {
        name: 'user',
        nameLocalizations: { fr: 'utilisateur'},
        description: 'De quel utilisateur voulez vous voir les informations ?',
        type: ApplicationCommandOptionType.User, // 替换原字符串'6'
    }
],

3. 正确获取用户对象

完成上述修改后,你可以继续使用interaction.options.getUser('user'),也可以通过get()方法获取选项后再取user属性(两种方式效果一致):

async execute(interaction, client, args) {
    // 方式1:使用getUser方法
    const user = interaction.options.getUser('user') || interaction.user;
    // 方式2:使用get方法
    // const user = interaction.options.get('user')?.user || interaction.user;

额外规范修正

原代码中aliases字段为字符串格式,v14要求为数组,建议同步修正:

aliases: ['userinfo', 'ui', 'useri'], // 替换原字符串'userinfo, ui, useri'

版本验证

确保你的discord.js版本是v14.x,可通过以下命令检查:

npm list discord.js

若版本不符,重新安装最新v14版本:

npm install discord.js@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:55:25