types(interactionCollector): filter should have a collected argument (#7753)

This commit is contained in:
Suneet Tipirneni
2022-04-12 11:13:03 -04:00
committed by GitHub
parent 25fdb3894d
commit e4f27051ca
2 changed files with 12 additions and 7 deletions

View File

@@ -1478,7 +1478,7 @@ export class Interaction<Cached extends CacheType = CacheType> extends Base {
public isModalSubmit(): this is ModalSubmitInteraction<Cached>;
}
export class InteractionCollector<T extends Interaction> extends Collector<Snowflake, T> {
export class InteractionCollector<T extends Interaction> extends Collector<Snowflake, T, [Collection<Snowflake, T>]> {
public constructor(client: Client, options?: InteractionCollectorOptions<T>);
private _handleMessageDeletion(message: Message): void;
private _handleChannelDeletion(channel: NonThreadGuildBasedChannel): void;
@@ -1695,7 +1695,7 @@ export class MessageAttachment {
public toJSON(): unknown;
}
export class MessageCollector extends Collector<Snowflake, Message> {
export class MessageCollector extends Collector<Snowflake, Message, [Collection<Snowflake, Message>]> {
public constructor(channel: TextBasedChannel, options?: MessageCollectorOptions);
private _handleChannelDeletion(channel: NonThreadGuildBasedChannel): void;
private _handleGuildDeletion(guild: Guild): void;
@@ -4584,7 +4584,7 @@ export interface IntegrationAccount {
export type IntegrationType = 'twitch' | 'youtube' | 'discord';
export interface InteractionCollectorOptions<T extends Interaction, Cached extends CacheType = CacheType>
extends CollectorOptions<[T]> {
extends CollectorOptions<[T, Collection<Snowflake, T>]> {
channel?: TextBasedChannelResolvable;
componentType?: ComponentType;
guild?: GuildResolvable;
@@ -4677,7 +4677,7 @@ export interface InteractionButtonComponentData extends BaseButtonComponentData
export type ButtonComponentData = InteractionButtonComponentData | LinkButtonComponentData;
export interface MessageCollectorOptions extends CollectorOptions<[Message]> {
export interface MessageCollectorOptions extends CollectorOptions<[Message, Collection<Snowflake, Message>]> {
max?: number;
maxProcessed?: number;
}

View File

@@ -595,7 +595,12 @@ client.on('messageCreate', async message => {
const buttonCollector = message.createMessageComponentCollector({ componentType: ComponentType.Button });
expectType<InteractionCollector<ButtonInteraction<'cached'>>>(buttonCollector);
expectAssignable<(test: ButtonInteraction<'cached'>) => boolean | Promise<boolean>>(buttonCollector.filter);
expectAssignable<
(
test: ButtonInteraction<'cached'>,
items: Collection<Snowflake, ButtonInteraction<'cached'>>,
) => boolean | Promise<boolean>
>(buttonCollector.filter);
expectType<GuildTextBasedChannel>(message.channel);
expectType<Guild>(message.guild);
expectType<GuildMember | null>(message.member);
@@ -916,12 +921,12 @@ notPropertyOf(guildMember, 'lastMessageId');
// Test collector event parameters
declare const messageCollector: MessageCollector;
messageCollector.on('collect', (...args) => {
expectType<[Message]>(args);
expectType<[Message, Collection<Snowflake, Message>]>(args);
});
(async () => {
for await (const value of messageCollector) {
expectType<[Message<boolean>]>(value);
expectType<[Message<boolean>, Collection<Snowflake, Message>]>(value);
}
})();