From 1eaac828f41ac8e469b885eab7f55291b3ebc17a Mon Sep 17 00:00:00 2001 From: Shino Date: Mon, 19 Jul 2021 00:15:42 -0400 Subject: [PATCH] fix(CommandInteraction): change options type from Collection to array --- typings/index.d.ts | 3 +-- typings/index.ts | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/typings/index.d.ts b/typings/index.d.ts index 779ff8b40c59..b936c4bd19bb 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -416,7 +416,6 @@ export class CommandInteraction extends Interaction { public reply(options: InteractionReplyOptions & { fetchReply: true }): Promise; public reply(options: string | MessagePayload | InteractionReplyOptions): Promise; private transformOption(option: unknown, resolved: unknown): CommandInteractionOption; - private _createOptionsCollection(options: unknown, resolved: unknown): Collection; } export class CommandInteractionOptionResolver { @@ -3024,7 +3023,7 @@ export interface CommandInteractionOption { name: string; type: ApplicationCommandOptionType; value?: string | number | boolean; - options?: Collection; + options?: CommandInteractionOption[]; user?: User; member?: GuildMember | APIInteractionDataResolvedGuildMember; channel?: GuildChannel | APIInteractionDataResolvedChannel; diff --git a/typings/index.ts b/typings/index.ts index 4d2f84f8ff15..e878de584b69 100644 --- a/typings/index.ts +++ b/typings/index.ts @@ -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(interaction.guildId); + +client.on('interactionCreate', async interaction => { + if (interaction.isCommand()) { + assertType(interaction); + assertType(interaction.options); + + const optionalOption = interaction.options.get('name'); + const requiredOption = interaction.options.get('name', true); + assertType(optionalOption); + assertType(requiredOption); + assertType(requiredOption.options); + + assertType(interaction.options.getString('name', booleanValue)); + assertType(interaction.options.getString('name', false)); + assertType(interaction.options.getString('name', true)); + + assertType(interaction.options.getSubCommand()); + assertType(interaction.options.getSubCommandGroup()); + } +});