typings: Message#createMessageComponentCollector use MessageComponentInteractionOptions<T> (#6596)

This commit is contained in:
Suneet Tipirneni
2021-09-08 08:36:15 -04:00
committed by GitHub
parent ea3695585d
commit c62823e43d
2 changed files with 11 additions and 5 deletions

9
typings/index.d.ts vendored
View File

@@ -1160,7 +1160,7 @@ type InteractionExtractor<T extends MessageComponentType | MessageComponentTypes
type MessageCollectorOptionsParams<T extends MessageComponentType | MessageComponentTypes | undefined> =
| {
componentType?: T;
} & InteractionCollectorOptions<InteractionExtractor<T>>;
} & MessageComponentCollectorOptions<InteractionExtractor<T>>;
type AwaitMessageCollectorOptionsParams<T extends MessageComponentType | MessageComponentTypes | undefined> =
| { componentType?: T } & Pick<
@@ -4026,15 +4026,16 @@ export interface InteractionCollectorOptions<T extends Interaction> extends Coll
message?: Message | APIMessage;
}
export interface ButtonInteractionCollectorOptions extends InteractionCollectorOptions<ButtonInteraction> {
export interface ButtonInteractionCollectorOptions extends MessageComponentCollectorOptions<ButtonInteraction> {
componentType: 'BUTTON' | MessageComponentTypes.BUTTON;
}
export interface SelectMenuInteractionCollectorOptions extends InteractionCollectorOptions<SelectMenuInteraction> {
export interface SelectMenuInteractionCollectorOptions extends MessageComponentCollectorOptions<SelectMenuInteraction> {
componentType: 'SELECT_MENU' | MessageComponentTypes.SELECT_MENU;
}
export interface MessageInteractionCollectorOptions extends InteractionCollectorOptions<MessageComponentInteraction> {
export interface MessageInteractionCollectorOptions
extends MessageComponentCollectorOptions<MessageComponentInteraction> {
componentType: 'ACTION_ROW' | MessageComponentTypes.ACTION_ROW;
}

View File

@@ -508,9 +508,14 @@ client.on('messageCreate', message => {
assertType<InteractionCollector<MessageComponentInteraction>>(defaultCollector);
// Verify that additional options don't affect default collector types.
const semiDefaultCollector = message.createMessageComponentCollector({ interactionType: 'APPLICATION_COMMAND' });
const semiDefaultCollector = message.createMessageComponentCollector({ time: 10000 });
assertType<InteractionCollector<MessageComponentInteraction>>(semiDefaultCollector);
// Verify that interaction collector options can't be used.
// @ts-expect-error
const interactionOptions = message.createMessageComponentCollector({ interactionType: 'APPLICATION_COMMAND' });
// Make sure filter parameters are properly inferred.
message.createMessageComponentCollector({
filter: i => {