fix(CommandInteraction): change options type from Collection to array (#6139)

This commit is contained in:
Shino
2021-07-19 03:02:53 -04:00
committed by GitHub
parent 8ea04b295d
commit 77784aca43
2 changed files with 25 additions and 2 deletions

3
typings/index.d.ts vendored
View File

@@ -416,7 +416,6 @@ export class CommandInteraction extends Interaction {
public reply(options: InteractionReplyOptions & { fetchReply: true }): Promise<Message | APIMessage>;
public reply(options: string | MessagePayload | InteractionReplyOptions): Promise<void>;
private transformOption(option: unknown, resolved: unknown): CommandInteractionOption;
private _createOptionsCollection(options: unknown, resolved: unknown): Collection<string, CommandInteractionOption>;
}
export class CommandInteractionOptionResolver {
@@ -3024,7 +3023,7 @@ export interface CommandInteractionOption {
name: string;
type: ApplicationCommandOptionType;
value?: string | number | boolean;
options?: Collection<string, CommandInteractionOption>;
options?: CommandInteractionOption[];
user?: User;
member?: GuildMember | APIInteractionDataResolvedGuildMember;
channel?: GuildChannel | APIInteractionDataResolvedChannel;

View File

@@ -8,6 +8,9 @@ import {
ClientApplication,
ClientUser,
Collection,
CommandInteraction,
CommandInteractionOption,
CommandInteractionOptionResolver,
Constants,
DMChannel,
Guild,
@@ -646,4 +649,25 @@ client.on('messageReactionAdd', async reaction => {
// Test interactions
declare const interaction: Interaction;
declare const booleanValue: boolean;
if (interaction.inGuild()) assertType<Snowflake>(interaction.guildId);
client.on('interactionCreate', async interaction => {
if (interaction.isCommand()) {
assertType<CommandInteraction>(interaction);
assertType<CommandInteractionOptionResolver>(interaction.options);
const optionalOption = interaction.options.get('name');
const requiredOption = interaction.options.get('name', true);
assertType<CommandInteractionOption | null>(optionalOption);
assertType<CommandInteractionOption>(requiredOption);
assertType<CommandInteractionOption[] | undefined>(requiredOption.options);
assertType<string | null>(interaction.options.getString('name', booleanValue));
assertType<string | null>(interaction.options.getString('name', false));
assertType<string>(interaction.options.getString('name', true));
assertType<string>(interaction.options.getSubCommand());
assertType<string>(interaction.options.getSubCommandGroup());
}
});