mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 19:43:29 +01:00
types: forward cache types to collector filters (#7126)
This commit is contained in:
26
typings/index.d.ts
vendored
26
typings/index.d.ts
vendored
@@ -1377,19 +1377,25 @@ export class LimitedCollection<K, V> extends Collection<K, V> {
|
|||||||
public static filterByLifetime<K, V>(options?: LifetimeFilterOptions<K, V>): SweepFilter<K, V>;
|
public static filterByLifetime<K, V>(options?: LifetimeFilterOptions<K, V>): SweepFilter<K, V>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type MessageCollectorOptionsParams<T extends MessageComponentTypeResolvable> =
|
export type MessageCollectorOptionsParams<T extends MessageComponentTypeResolvable, Cached extends boolean = boolean> =
|
||||||
| {
|
| {
|
||||||
componentType?: T;
|
componentType?: T;
|
||||||
} & MessageComponentCollectorOptions<MappedInteractionTypes[T]>;
|
} & MessageComponentCollectorOptions<MappedInteractionTypes<Cached>[T]>;
|
||||||
|
|
||||||
export type MessageChannelCollectorOptionsParams<T extends MessageComponentTypeResolvable> =
|
export type MessageChannelCollectorOptionsParams<
|
||||||
|
T extends MessageComponentTypeResolvable,
|
||||||
|
Cached extends boolean = boolean,
|
||||||
|
> =
|
||||||
| {
|
| {
|
||||||
componentType?: T;
|
componentType?: T;
|
||||||
} & MessageChannelComponentCollectorOptions<MappedInteractionTypes[T]>;
|
} & MessageChannelComponentCollectorOptions<MappedInteractionTypes<Cached>[T]>;
|
||||||
|
|
||||||
export type AwaitMessageCollectorOptionsParams<T extends MessageComponentTypeResolvable> =
|
export type AwaitMessageCollectorOptionsParams<
|
||||||
|
T extends MessageComponentTypeResolvable,
|
||||||
|
Cached extends boolean = boolean,
|
||||||
|
> =
|
||||||
| { componentType?: T } & Pick<
|
| { componentType?: T } & Pick<
|
||||||
InteractionCollectorOptions<MappedInteractionTypes[T]>,
|
InteractionCollectorOptions<MappedInteractionTypes<Cached>[T]>,
|
||||||
keyof AwaitMessageComponentOptions<any>
|
keyof AwaitMessageComponentOptions<any>
|
||||||
>;
|
>;
|
||||||
|
|
||||||
@@ -1458,12 +1464,12 @@ export class Message<Cached extends boolean = boolean> extends Base {
|
|||||||
public flags: Readonly<MessageFlags>;
|
public flags: Readonly<MessageFlags>;
|
||||||
public reference: MessageReference | null;
|
public reference: MessageReference | null;
|
||||||
public awaitMessageComponent<T extends MessageComponentTypeResolvable = 'ACTION_ROW'>(
|
public awaitMessageComponent<T extends MessageComponentTypeResolvable = 'ACTION_ROW'>(
|
||||||
options?: AwaitMessageCollectorOptionsParams<T>,
|
options?: AwaitMessageCollectorOptionsParams<T, Cached>,
|
||||||
): Promise<MappedInteractionTypes<Cached>[T]>;
|
): Promise<MappedInteractionTypes<Cached>[T]>;
|
||||||
public awaitReactions(options?: AwaitReactionsOptions): Promise<Collection<Snowflake | string, MessageReaction>>;
|
public awaitReactions(options?: AwaitReactionsOptions): Promise<Collection<Snowflake | string, MessageReaction>>;
|
||||||
public createReactionCollector(options?: ReactionCollectorOptions): ReactionCollector;
|
public createReactionCollector(options?: ReactionCollectorOptions): ReactionCollector;
|
||||||
public createMessageComponentCollector<T extends MessageComponentTypeResolvable = 'ACTION_ROW'>(
|
public createMessageComponentCollector<T extends MessageComponentTypeResolvable = 'ACTION_ROW'>(
|
||||||
options?: MessageCollectorOptionsParams<T>,
|
options?: MessageCollectorOptionsParams<T, Cached>,
|
||||||
): InteractionCollector<MappedInteractionTypes<Cached>[T]>;
|
): InteractionCollector<MappedInteractionTypes<Cached>[T]>;
|
||||||
public delete(): Promise<Message>;
|
public delete(): Promise<Message>;
|
||||||
public edit(content: string | MessageEditOptions | MessagePayload): Promise<Message>;
|
public edit(content: string | MessageEditOptions | MessagePayload): Promise<Message>;
|
||||||
@@ -3205,7 +3211,7 @@ export interface TextBasedChannelFields extends PartialTextBasedChannelFields {
|
|||||||
lastPinTimestamp: number | null;
|
lastPinTimestamp: number | null;
|
||||||
readonly lastPinAt: Date | null;
|
readonly lastPinAt: Date | null;
|
||||||
awaitMessageComponent<T extends MessageComponentTypeResolvable = 'ACTION_ROW'>(
|
awaitMessageComponent<T extends MessageComponentTypeResolvable = 'ACTION_ROW'>(
|
||||||
options?: AwaitMessageCollectorOptionsParams<T>,
|
options?: AwaitMessageCollectorOptionsParams<T, true>,
|
||||||
): Promise<MappedInteractionTypes[T]>;
|
): Promise<MappedInteractionTypes[T]>;
|
||||||
awaitMessages(options?: AwaitMessagesOptions): Promise<Collection<Snowflake, Message>>;
|
awaitMessages(options?: AwaitMessagesOptions): Promise<Collection<Snowflake, Message>>;
|
||||||
bulkDelete(
|
bulkDelete(
|
||||||
@@ -3213,7 +3219,7 @@ export interface TextBasedChannelFields extends PartialTextBasedChannelFields {
|
|||||||
filterOld?: boolean,
|
filterOld?: boolean,
|
||||||
): Promise<Collection<Snowflake, Message>>;
|
): Promise<Collection<Snowflake, Message>>;
|
||||||
createMessageComponentCollector<T extends MessageComponentTypeResolvable = 'ACTION_ROW'>(
|
createMessageComponentCollector<T extends MessageComponentTypeResolvable = 'ACTION_ROW'>(
|
||||||
options?: MessageChannelCollectorOptionsParams<T>,
|
options?: MessageChannelCollectorOptionsParams<T, true>,
|
||||||
): InteractionCollector<MappedInteractionTypes[T]>;
|
): InteractionCollector<MappedInteractionTypes[T]>;
|
||||||
createMessageCollector(options?: MessageCollectorOptions): MessageCollector;
|
createMessageCollector(options?: MessageCollectorOptions): MessageCollector;
|
||||||
sendTyping(): Promise<void>;
|
sendTyping(): Promise<void>;
|
||||||
|
|||||||
@@ -536,6 +536,7 @@ client.on('messageCreate', async message => {
|
|||||||
|
|
||||||
const buttonCollector = message.createMessageComponentCollector({ componentType: 'BUTTON' });
|
const buttonCollector = message.createMessageComponentCollector({ componentType: 'BUTTON' });
|
||||||
expectType<InteractionCollector<ButtonInteraction<'cached'>>>(buttonCollector);
|
expectType<InteractionCollector<ButtonInteraction<'cached'>>>(buttonCollector);
|
||||||
|
expectAssignable<(test: ButtonInteraction<'cached'>) => boolean | Promise<boolean>>(buttonCollector.filter);
|
||||||
expectType<GuildTextBasedChannel>(message.channel);
|
expectType<GuildTextBasedChannel>(message.channel);
|
||||||
expectType<Guild>(message.guild);
|
expectType<Guild>(message.guild);
|
||||||
expectType<GuildMember | null>(message.member);
|
expectType<GuildMember | null>(message.member);
|
||||||
@@ -642,7 +643,7 @@ client.on('messageCreate', async message => {
|
|||||||
|
|
||||||
channel.awaitMessageComponent({
|
channel.awaitMessageComponent({
|
||||||
filter: i => {
|
filter: i => {
|
||||||
expectType<MessageComponentInteraction>(i);
|
expectType<MessageComponentInteraction<'cached'>>(i);
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -650,7 +651,7 @@ client.on('messageCreate', async message => {
|
|||||||
channel.awaitMessageComponent({
|
channel.awaitMessageComponent({
|
||||||
componentType: 'BUTTON',
|
componentType: 'BUTTON',
|
||||||
filter: i => {
|
filter: i => {
|
||||||
expectType<ButtonInteraction>(i);
|
expectType<ButtonInteraction<'cached'>>(i);
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -658,7 +659,7 @@ client.on('messageCreate', async message => {
|
|||||||
channel.awaitMessageComponent({
|
channel.awaitMessageComponent({
|
||||||
componentType: 'SELECT_MENU',
|
componentType: 'SELECT_MENU',
|
||||||
filter: i => {
|
filter: i => {
|
||||||
expectType<SelectMenuInteraction>(i);
|
expectType<SelectMenuInteraction<'cached'>>(i);
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user