Discord.js 无法为斜线命令添加选项

Posted

技术标签:

【中文标题】Discord.js 无法为斜线命令添加选项【英文标题】:Discord.js cannot add option to slash commands 【发布时间】:2022-01-15 05:53:58 【问题描述】:

我已经开始迁移到 discordjs v13 并遇到了这个错误:Property 'options' does not exist on type 'Interaction '

运行事件:

export interface runEvent 
  interaction: Interaction,
  client: Client,
  args: string[],

哪里出错了

export const execute = (interaction, client, args:runEvent) => 
    console.log(interaction.options.getString('name'))
                          ^^^^^^^^

是什么导致这个抛出这个错误?当我登录 interaction 本身时,我可以看到它具有属性选项。那么是什么引发了这个错误呢?

附带说明,将interaction: Interaction 更改为interaction: any 可立即解决此问题。我只是好奇是什么引发了这个错误

【问题讨论】:

【参考方案1】:

这是因为Interaction任何类型的交互。这包括按钮、选择菜单和上下文菜单,它们没有options 属性。您可以将其转换为 CommandInteraction,但建议您使用类型保护 (.isCommand()),以便如果它不同的类型,它将改为返回

export const execute = ( interaction, client, args : runEvent) => 
    if (!interaction.isCommand()) return;
    console.log(interaction.options.getString('name'))
  

【讨论】:

以上是关于Discord.js 无法为斜线命令添加选项的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 斜线命令说缺少访问权限,即使我有“使用斜线命令”范围

斜线命令未在控制台中列出 (discord.js)

Discord.js 斜线命令权限系统不起作用

为用户添加角色 discord.js

无法添加角色,Discord.js

Discord.js 无法执行