From d6e16094080eaadfa39a49ca7a928078307f3e9b Mon Sep 17 00:00:00 2001 From: Qjuh <76154676+Qjuh@users.noreply.github.com> Date: Mon, 2 Mar 2026 22:37:24 +0100 Subject: [PATCH] docs(discord.js): less omit types for better docs (#11323) * docs(discord.js): less omit types for better docs * chore: refactor guild scheduled event types * fix: duplicate properties * fix: use correct type type * chore: apply suggestion from @almeidx Co-authored-by: Almeida --------- Co-authored-by: Almeida --- packages/discord.js/typings/index.d.ts | 69 ++++++++++++++------------ 1 file changed, 38 insertions(+), 31 deletions(-) diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index 47cc38b04..0551bc8e5 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -5426,7 +5426,7 @@ export type CacheWithLimitsOptions = { : never; }; -export interface CategoryCreateChannelOptions { +export interface BaseCategoryCreateChannelOptions { availableTags?: readonly GuildForumTagData[]; bitrate?: number; defaultAutoArchiveDuration?: ThreadAutoArchiveDuration; @@ -5434,7 +5434,7 @@ export interface CategoryCreateChannelOptions { defaultReactionEmoji?: DefaultReactionEmoji; defaultSortOrder?: SortOrderType; defaultThreadRateLimitPerUser?: number; - name: string; + name?: string; nsfw?: boolean; permissionOverwrites?: ReadonlyCollection | readonly OverwriteResolvable[]; position?: number; @@ -5442,11 +5442,16 @@ export interface CategoryCreateChannelOptions { reason?: string; rtcRegion?: string; topic?: string; - type?: CategoryChannelChildTypes; + type?: GuildChannelTypes; userLimit?: number; videoQualityMode?: VideoQualityMode; } +export interface CategoryCreateChannelOptions extends BaseCategoryCreateChannelOptions { + name: string; + type?: CategoryChannelChildTypes; +} + export interface ChannelCreationOverwrites { allow?: PermissionResolvable; deny?: PermissionResolvable; @@ -6243,20 +6248,12 @@ export interface AutoModerationActionMetadataOptions extends BaseAutoModerationA channel?: GuildTextChannelResolvable | ThreadChannel; } -export interface GuildChannelCreateOptions extends Omit { - parent?: CategoryChannelResolvable | null; - type?: Exclude< - ChannelType, - | ChannelType.AnnouncementThread - | ChannelType.DM - | ChannelType.GroupDM - | ChannelType.PrivateThread - | ChannelType.PublicThread - >; +export interface GuildChannelCreateOptions extends BaseCategoryCreateChannelOptions { + name: string; } -export interface GuildChannelCloneOptions extends Omit { - name?: string; +export interface GuildChannelCloneOptions extends BaseCategoryCreateChannelOptions { + parent?: CategoryChannelResolvable | null; } export interface GuildChannelEditOptions { @@ -6397,18 +6394,27 @@ export interface GuildListMembersOptions { limit?: number; } -// TODO: use conditional types for better TS support -export interface GuildScheduledEventCreateOptions { - channel?: GuildVoiceChannelResolvable; +export interface BaseGuildScheduledEventOptions { + channel?: GuildVoiceChannelResolvable | null; description?: string; entityMetadata?: GuildScheduledEventEntityMetadataOptions; - entityType: GuildScheduledEventEntityType; + entityType?: GuildScheduledEventEntityType; image?: Base64Resolvable | BufferResolvable | null; + name?: string; + privacyLevel?: GuildScheduledEventPrivacyLevel; + reason?: string; + recurrenceRule?: GuildScheduledEventRecurrenceRuleOptions | null; + scheduledEndTime?: DateResolvable; + scheduledStartTime?: DateResolvable; +} + +// TODO: use conditional types for better TS support +export interface GuildScheduledEventCreateOptions extends BaseGuildScheduledEventOptions { + channel?: GuildVoiceChannelResolvable; + entityType: GuildScheduledEventEntityType; name: string; privacyLevel: GuildScheduledEventPrivacyLevel; - reason?: string; recurrenceRule?: GuildScheduledEventRecurrenceRuleOptions; - scheduledEndTime?: DateResolvable; scheduledStartTime: DateResolvable; } @@ -6445,9 +6451,7 @@ export type BaseGuildScheduledEventRecurrenceRuleOptions< export interface GuildScheduledEventEditOptions< Status extends GuildScheduledEventStatus, AcceptableStatus extends GuildScheduledEventSetStatusArg, -> extends Omit, 'channel' | 'recurrenceRule'> { - channel?: GuildVoiceChannelResolvable | null; - recurrenceRule?: GuildScheduledEventRecurrenceRuleOptions | null; +> extends BaseGuildScheduledEventOptions { status?: AcceptableStatus; } @@ -6580,7 +6584,7 @@ export interface InteractionDeferUpdateOptions { withResponse?: boolean; } -export interface InteractionReplyOptions extends BaseMessageOptions, MessageOptionsPoll { +export interface InteractionReplyOptions extends BaseMessageSendOptions, MessageOptionsPoll { flags?: | BitFieldResolvable< Extract< @@ -6747,11 +6751,15 @@ export interface BaseMessageOptions { | JSONEncodable | TopLevelComponentData )[]; - content?: string; + content?: string | null; embeds?: readonly (APIEmbed | JSONEncodable)[]; files?: readonly (Attachment | AttachmentPayload | BufferResolvable | FileBodyEncodable | Stream)[]; } +export interface BaseMessageSendOptions extends BaseMessageOptions { + content?: string; +} + export interface MessageOptionsPoll { poll?: JSONEncodable | PollData; } @@ -6777,7 +6785,7 @@ export interface MessageOptionsStickers { } export interface BaseMessageCreateOptions - extends BaseMessageOptions, MessageOptionsPoll, MessageOptionsFlags, MessageOptionsTTS, MessageOptionsStickers { + extends BaseMessageSendOptions, MessageOptionsPoll, MessageOptionsFlags, MessageOptionsTTS, MessageOptionsStickers { enforceNonce?: boolean; nonce?: number | string; } @@ -6787,11 +6795,10 @@ export interface MessageCreateOptions extends BaseMessageCreateOptions { } export interface GuildForumThreadMessageCreateOptions - extends BaseMessageOptions, MessageOptionsFlags, MessageOptionsStickers {} + extends BaseMessageSendOptions, MessageOptionsFlags, MessageOptionsStickers {} -export interface MessageEditOptions extends Omit { +export interface MessageEditOptions extends BaseMessageOptions { attachments?: readonly (Attachment | JSONEncodable)[]; - content?: string | null; flags?: | BitFieldResolvable< Extract, @@ -7343,7 +7350,7 @@ export interface WebhookFetchMessageOptions { } export interface WebhookMessageCreateOptions - extends BaseMessageOptions, MessageOptionsPoll, MessageOptionsFlags, MessageOptionsTTS { + extends BaseMessageSendOptions, MessageOptionsPoll, MessageOptionsFlags, MessageOptionsTTS { appliedTags?: readonly Snowflake[]; avatarURL?: string; threadId?: Snowflake;