mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
types: add ExcludeEnum utility for easier typings (#6746)
Co-authored-by: Jan <66554238+vaporox@users.noreply.github.com>
This commit is contained in:
26
typings/enums.d.ts
vendored
26
typings/enums.d.ts
vendored
@@ -49,6 +49,32 @@ export const enum ChannelTypes {
|
||||
GUILD_STAGE_VOICE = 13,
|
||||
}
|
||||
|
||||
export const enum MessageTypes {
|
||||
DEFAULT,
|
||||
RECIPIENT_ADD,
|
||||
RECIPIENT_REMOVE,
|
||||
CALL,
|
||||
CHANNEL_NAME_CHANGE,
|
||||
CHANNEL_ICON_CHANGE,
|
||||
CHANNEL_PINNED_MESSAGE,
|
||||
GUILD_MEMBER_JOIN,
|
||||
USER_PREMIUM_GUILD_SUBSCRIPTION,
|
||||
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1,
|
||||
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2,
|
||||
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3,
|
||||
CHANNEL_FOLLOW_ADD,
|
||||
GUILD_DISCOVERY_DISQUALIFIED = 14,
|
||||
GUILD_DISCOVERY_REQUALIFIED,
|
||||
GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING,
|
||||
GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING,
|
||||
THREAD_CREATED,
|
||||
REPLY,
|
||||
APPLICATION_COMMAND,
|
||||
THREAD_STARTER_MESSAGE,
|
||||
GUILD_INVITE_REMINDER,
|
||||
CONTEXT_MENU_COMMAND,
|
||||
}
|
||||
|
||||
export const enum DefaultMessageNotificationLevels {
|
||||
ALL_MESSAGES = 0,
|
||||
ONLY_MENTIONS = 1,
|
||||
|
||||
75
typings/index.d.ts
vendored
75
typings/index.d.ts
vendored
@@ -66,6 +66,7 @@ import {
|
||||
MembershipStates,
|
||||
MessageButtonStyles,
|
||||
MessageComponentTypes,
|
||||
MessageTypes,
|
||||
MFALevels,
|
||||
NSFWLevels,
|
||||
OverwriteTypes,
|
||||
@@ -2290,6 +2291,8 @@ export class WelcomeScreen extends Base {
|
||||
|
||||
type EnumHolder<T> = { [P in keyof T]: T[P] };
|
||||
|
||||
type ExcludeEnum<T, K extends keyof T> = Exclude<keyof T | T[keyof T], K | T[K]>;
|
||||
|
||||
export const Constants: {
|
||||
Package: {
|
||||
name: string;
|
||||
@@ -2900,7 +2903,7 @@ export type ActivitiesOptions = Omit<ActivityOptions, 'shardId'>;
|
||||
export interface ActivityOptions {
|
||||
name?: string;
|
||||
url?: string;
|
||||
type?: Exclude<ActivityType, 'CUSTOM'> | Exclude<ActivityTypes, ActivityTypes.CUSTOM>;
|
||||
type?: ExcludeEnum<typeof ActivityTypes, 'CUSTOM'>;
|
||||
shardId?: number | readonly number[];
|
||||
}
|
||||
|
||||
@@ -3129,7 +3132,7 @@ export type ApplicationCommandData =
|
||||
|
||||
export interface ApplicationCommandChannelOptionData extends BaseApplicationCommandOptionsData {
|
||||
type: CommandOptionChannelResolvableType;
|
||||
channelTypes?: Exclude<keyof typeof ChannelTypes | ChannelTypes, 'UNKNOWN' | ChannelTypes.UNKNOWN>[];
|
||||
channelTypes?: ExcludeEnum<typeof ChannelTypes, 'UNKNOWN'>[];
|
||||
channel_types?: Exclude<ChannelTypes, ChannelTypes.UNKNOWN>[];
|
||||
}
|
||||
|
||||
@@ -3313,8 +3316,8 @@ export type CacheWithLimitsOptions = {
|
||||
export interface CategoryCreateChannelOptions {
|
||||
permissionOverwrites?: OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>;
|
||||
topic?: string;
|
||||
type?: Exclude<
|
||||
keyof typeof ChannelTypes | ChannelTypes,
|
||||
type?: ExcludeEnum<
|
||||
typeof ChannelTypes,
|
||||
| 'DM'
|
||||
| 'GROUP_DM'
|
||||
| 'UNKNOWN'
|
||||
@@ -3322,13 +3325,6 @@ export interface CategoryCreateChannelOptions {
|
||||
| 'GUILD_NEWS_THREAD'
|
||||
| 'GUILD_PRIVATE_THREAD'
|
||||
| 'GUILD_CATEGORY'
|
||||
| ChannelTypes.DM
|
||||
| ChannelTypes.GROUP_DM
|
||||
| ChannelTypes.UNKNOWN
|
||||
| ChannelTypes.GUILD_PUBLIC_THREAD
|
||||
| ChannelTypes.GUILD_NEWS_THREAD
|
||||
| ChannelTypes.GUILD_PRIVATE_THREAD
|
||||
| ChannelTypes.GUILD_CATEGORY
|
||||
>;
|
||||
nsfw?: boolean;
|
||||
bitrate?: number;
|
||||
@@ -3968,20 +3964,9 @@ export type GuildChannelResolvable = Snowflake | GuildChannel | ThreadChannel;
|
||||
|
||||
export interface GuildChannelCreateOptions extends Omit<CategoryCreateChannelOptions, 'type'> {
|
||||
parent?: CategoryChannelResolvable;
|
||||
type?: Exclude<
|
||||
keyof typeof ChannelTypes | ChannelTypes,
|
||||
| 'DM'
|
||||
| 'GROUP_DM'
|
||||
| 'UNKNOWN'
|
||||
| 'GUILD_PUBLIC_THREAD'
|
||||
| 'GUILD_NEWS_THREAD'
|
||||
| 'GUILD_PRIVATE_THREAD'
|
||||
| ChannelTypes.DM
|
||||
| ChannelTypes.GROUP_DM
|
||||
| ChannelTypes.UNKNOWN
|
||||
| ChannelTypes.GUILD_PUBLIC_THREAD
|
||||
| ChannelTypes.GUILD_NEWS_THREAD
|
||||
| ChannelTypes.GUILD_PRIVATE_THREAD
|
||||
type?: ExcludeEnum<
|
||||
typeof ChannelTypes,
|
||||
'DM' | 'GROUP_DM' | 'UNKNOWN' | 'GUILD_PUBLIC_THREAD' | 'GUILD_NEWS_THREAD' | 'GUILD_PRIVATE_THREAD'
|
||||
>;
|
||||
}
|
||||
|
||||
@@ -4308,7 +4293,7 @@ export interface LinkButtonOptions extends BaseButtonOptions {
|
||||
}
|
||||
|
||||
export interface InteractionButtonOptions extends BaseButtonOptions {
|
||||
style: Exclude<MessageButtonStyleResolvable, 'LINK' | MessageButtonStyles.LINK>;
|
||||
style: ExcludeEnum<typeof MessageButtonStyles, 'LINK'>;
|
||||
customId: string;
|
||||
}
|
||||
|
||||
@@ -4506,30 +4491,7 @@ export type MessageTarget =
|
||||
| Message
|
||||
| MessageManager;
|
||||
|
||||
export type MessageType =
|
||||
| 'DEFAULT'
|
||||
| 'RECIPIENT_ADD'
|
||||
| 'RECIPIENT_REMOVE'
|
||||
| 'CALL'
|
||||
| 'CHANNEL_NAME_CHANGE'
|
||||
| 'CHANNEL_ICON_CHANGE'
|
||||
| 'CHANNEL_PINNED_MESSAGE'
|
||||
| 'GUILD_MEMBER_JOIN'
|
||||
| 'USER_PREMIUM_GUILD_SUBSCRIPTION'
|
||||
| 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1'
|
||||
| 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2'
|
||||
| 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3'
|
||||
| 'CHANNEL_FOLLOW_ADD'
|
||||
| 'GUILD_DISCOVERY_DISQUALIFIED'
|
||||
| 'GUILD_DISCOVERY_REQUALIFIED'
|
||||
| 'GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING'
|
||||
| 'GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING'
|
||||
| 'THREAD_CREATED'
|
||||
| 'REPLY'
|
||||
| 'APPLICATION_COMMAND'
|
||||
| 'THREAD_STARTER_MESSAGE'
|
||||
| 'GUILD_INVITE_REMINDER'
|
||||
| 'CONTEXT_MENU_COMMAND';
|
||||
export type MessageType = keyof typeof MessageTypes;
|
||||
|
||||
export type MFALevel = keyof typeof MFALevels;
|
||||
|
||||
@@ -4631,8 +4593,8 @@ export type PresenceResolvable = Presence | UserResolvable | Snowflake;
|
||||
export interface PartialChannelData {
|
||||
id?: Snowflake | number;
|
||||
parentId?: Snowflake | number;
|
||||
type?: Exclude<
|
||||
keyof typeof ChannelTypes | ChannelTypes,
|
||||
type?: ExcludeEnum<
|
||||
typeof ChannelTypes,
|
||||
| 'DM'
|
||||
| 'GROUP_DM'
|
||||
| 'GUILD_NEWS'
|
||||
@@ -4642,15 +4604,6 @@ export interface PartialChannelData {
|
||||
| 'GUILD_PUBLIC_THREAD'
|
||||
| 'GUILD_PRIVATE_THREAD'
|
||||
| 'GUILD_STAGE_VOICE'
|
||||
| ChannelTypes.DM
|
||||
| ChannelTypes.GROUP_DM
|
||||
| ChannelTypes.GUILD_NEWS
|
||||
| ChannelTypes.GUILD_STORE
|
||||
| ChannelTypes.UNKNOWN
|
||||
| ChannelTypes.GUILD_NEWS_THREAD
|
||||
| ChannelTypes.GUILD_PUBLIC_THREAD
|
||||
| ChannelTypes.GUILD_PRIVATE_THREAD
|
||||
| ChannelTypes.GUILD_STAGE_VOICE
|
||||
>;
|
||||
name: string;
|
||||
topic?: string;
|
||||
|
||||
Reference in New Issue
Block a user