【发布时间】:2023-01-21 23:57:14
【问题描述】:
我在 SlashCommandBuilder 中有一个选项是这样的:
.addStringOption((option) => option
.setName('city')
.setDescription('In which city are you currently based from?')
.addChoices(
{
name: 'City 1',
value: 'City-1-Example'
},
{
name: 'City 2',
value: 'City-2-Example'
}
)
.setRequired(true)
)
我正在考虑创建另一个单独的 .js 文件,假设 options.js 包含:
export const options = {
city: [
{
name: 'City 1',
value: 'City-1-Example'
},
{
name: 'City 2',
value: 'City-2-Example'
}
],
optionsForAnotherCommand: [
...
]
}
这样我就可以轻松地在一个文件中为所有 SlashCommandBuilder 选项编辑选项。使它井井有条,干净利落,我现在可以继续这样做了:
.addStringOption((option) => option
.setName('city')
.setDescription('In which city are you currently based from?')
.addChoices(options.city)
.setRequired(true)
)
但是,它返回给我一个错误:
errors: [[ 0, ValidationError: Expected the value to not be an array ...
该代码适用于第一个示例,但如果我想更改所有命令的选项,那将会很麻烦,因为我必须逐个文件地打开它们。想知道这是否可能,如果不是,是否有更有条理的方式将您的选项存储在 SlashCommandBuilder 中?
【问题讨论】:
-
你可以看到第一个不是数组。你应该使用传播运算符:
.addChoices(...options.city)
标签: javascript discord discord.js