feat(typings): explicitly type PremiumTier and Collectors (#5458)

This commit is contained in:
Ven
2021-04-14 11:33:35 -11:00
committed by GitHub
parent fa5a37e51a
commit 7c49612d4b

30
typings/index.d.ts vendored
View File

@@ -324,7 +324,7 @@ declare module 'discord.js' {
}
export abstract class Collector<K, V> extends EventEmitter {
constructor(client: Client, filter: CollectorFilter, options?: CollectorOptions);
constructor(client: Client, filter: CollectorFilter<[V]>, options?: CollectorOptions);
private _timeout: NodeJS.Timeout | null;
private _idletimeout: NodeJS.Timeout | null;
@@ -332,7 +332,7 @@ declare module 'discord.js' {
public collected: Collection<K, V>;
public ended: boolean;
public abstract endReason: string | null;
public filter: CollectorFilter;
public filter: CollectorFilter<[V]>;
public readonly next: Promise<V>;
public options: CollectorOptions;
public checkEnd(): void;
@@ -1017,10 +1017,13 @@ declare module 'discord.js' {
public reference: MessageReference | null;
public readonly referencedMessage: Message | null;
public awaitReactions(
filter: CollectorFilter,
filter: CollectorFilter<[MessageReaction, User]>,
options?: AwaitReactionsOptions,
): Promise<Collection<Snowflake, MessageReaction>>;
public createReactionCollector(filter: CollectorFilter, options?: ReactionCollectorOptions): ReactionCollector;
public createReactionCollector(
filter: CollectorFilter<[MessageReaction, User]>,
options?: ReactionCollectorOptions,
): ReactionCollector;
public delete(): Promise<Message>;
public edit(
content: APIMessageContentResolvable | MessageEditOptions | MessageEmbed | APIMessage,
@@ -1070,7 +1073,11 @@ declare module 'discord.js' {
}
export class MessageCollector extends Collector<Snowflake, Message> {
constructor(channel: TextChannel | DMChannel, filter: CollectorFilter, options?: MessageCollectorOptions);
constructor(
channel: TextChannel | DMChannel,
filter: CollectorFilter<[Message]>,
options?: MessageCollectorOptions,
);
private _handleChannelDeletion(channel: GuildChannel): void;
private _handleGuildDeletion(guild: Guild): void;
@@ -1248,7 +1255,7 @@ declare module 'discord.js' {
}
export class ReactionCollector extends Collector<Snowflake, MessageReaction> {
constructor(message: Message, filter: CollectorFilter, options?: ReactionCollectorOptions);
constructor(message: Message, filter: CollectorFilter<[MessageReaction, User]>, options?: ReactionCollectorOptions);
private _handleChannelDeletion(channel: GuildChannel): void;
private _handleGuildDeletion(guild: Guild): void;
private _handleMessageDeletion(message: Message): void;
@@ -2128,12 +2135,15 @@ declare module 'discord.js' {
readonly lastPinAt: Date | null;
typing: boolean;
typingCount: number;
awaitMessages(filter: CollectorFilter, options?: AwaitMessagesOptions): Promise<Collection<Snowflake, Message>>;
awaitMessages(
filter: CollectorFilter<[Message]>,
options?: AwaitMessagesOptions,
): Promise<Collection<Snowflake, Message>>;
bulkDelete(
messages: Collection<Snowflake, Message> | readonly MessageResolvable[] | number,
filterOld?: boolean,
): Promise<Collection<Snowflake, Message>>;
createMessageCollector(filter: CollectorFilter, options?: MessageCollectorOptions): MessageCollector;
createMessageCollector(filter: CollectorFilter<[Message]>, options?: MessageCollectorOptions): MessageCollector;
startTyping(count?: number): Promise<void>;
stopTyping(force?: boolean): void;
}
@@ -2549,7 +2559,7 @@ declare module 'discord.js' {
target: WebSocket;
}
type CollectorFilter = (...args: any[]) => boolean | Promise<boolean>;
type CollectorFilter<T extends any[]> = (...args: T) => boolean | Promise<boolean>;
interface CollectorOptions {
time?: number;
@@ -3149,7 +3159,7 @@ declare module 'discord.js' {
id: UserResolvable | RoleResolvable;
}
type PremiumTier = number;
type PremiumTier = 0 | 1 | 2 | 3;
interface PresenceData {
status?: PresenceStatusData;