discord.js v14中interaction.options.getUser('user')报错‘不是函数’求助
解决discord.js v14中
interaction.options.getUser报错问题 问题原因
在discord.js v14中,命令选项的定义和获取逻辑有两处关键变更,导致你原v13的代码无法正常运行:
- 命令选项的
type不再支持字符串数字(如'6'),必须使用官方提供的ApplicationCommandOptionType枚举 - 若选项类型未正确定义,
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
相关产品推荐
相关产品推荐

