Skip to content

Commit

Permalink
fix(CommandInteraction): change options type from Collection to array (
Browse files Browse the repository at this point in the history
  • Loading branch information
memikri committed Jul 19, 2021
1 parent 8ea04b2 commit 77784ac
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 deletions.
3 changes: 1 addition & 2 deletions typings/index.d.ts
Expand Up @@ -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 {
Expand Down Expand Up @@ -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;
Expand Down
24 changes: 24 additions & 0 deletions typings/index.ts
Expand Up @@ -8,6 +8,9 @@ import {
ClientApplication,
ClientUser,
Collection,
CommandInteraction,
CommandInteractionOption,
CommandInteractionOptionResolver,
Constants,
DMChannel,
Guild,
Expand Down Expand Up @@ -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());
}
});

0 comments on commit 77784ac

Please sign in to comment.