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 <github@almeidx.dev>

---------

Co-authored-by: Almeida <github@almeidx.dev>
This commit is contained in:
Qjuh
2026-03-02 22:37:24 +01:00
committed by GitHub
parent 3e6364070b
commit d6e1609408

View File

@@ -5426,7 +5426,7 @@ export type CacheWithLimitsOptions = {
: never; : never;
}; };
export interface CategoryCreateChannelOptions { export interface BaseCategoryCreateChannelOptions {
availableTags?: readonly GuildForumTagData[]; availableTags?: readonly GuildForumTagData[];
bitrate?: number; bitrate?: number;
defaultAutoArchiveDuration?: ThreadAutoArchiveDuration; defaultAutoArchiveDuration?: ThreadAutoArchiveDuration;
@@ -5434,7 +5434,7 @@ export interface CategoryCreateChannelOptions {
defaultReactionEmoji?: DefaultReactionEmoji; defaultReactionEmoji?: DefaultReactionEmoji;
defaultSortOrder?: SortOrderType; defaultSortOrder?: SortOrderType;
defaultThreadRateLimitPerUser?: number; defaultThreadRateLimitPerUser?: number;
name: string; name?: string;
nsfw?: boolean; nsfw?: boolean;
permissionOverwrites?: ReadonlyCollection<Snowflake, OverwriteResolvable> | readonly OverwriteResolvable[]; permissionOverwrites?: ReadonlyCollection<Snowflake, OverwriteResolvable> | readonly OverwriteResolvable[];
position?: number; position?: number;
@@ -5442,11 +5442,16 @@ export interface CategoryCreateChannelOptions {
reason?: string; reason?: string;
rtcRegion?: string; rtcRegion?: string;
topic?: string; topic?: string;
type?: CategoryChannelChildTypes; type?: GuildChannelTypes;
userLimit?: number; userLimit?: number;
videoQualityMode?: VideoQualityMode; videoQualityMode?: VideoQualityMode;
} }
export interface CategoryCreateChannelOptions extends BaseCategoryCreateChannelOptions {
name: string;
type?: CategoryChannelChildTypes;
}
export interface ChannelCreationOverwrites { export interface ChannelCreationOverwrites {
allow?: PermissionResolvable; allow?: PermissionResolvable;
deny?: PermissionResolvable; deny?: PermissionResolvable;
@@ -6243,20 +6248,12 @@ export interface AutoModerationActionMetadataOptions extends BaseAutoModerationA
channel?: GuildTextChannelResolvable | ThreadChannel; channel?: GuildTextChannelResolvable | ThreadChannel;
} }
export interface GuildChannelCreateOptions extends Omit<CategoryCreateChannelOptions, 'type'> { export interface GuildChannelCreateOptions extends BaseCategoryCreateChannelOptions {
parent?: CategoryChannelResolvable | null; name: string;
type?: Exclude<
ChannelType,
| ChannelType.AnnouncementThread
| ChannelType.DM
| ChannelType.GroupDM
| ChannelType.PrivateThread
| ChannelType.PublicThread
>;
} }
export interface GuildChannelCloneOptions extends Omit<GuildChannelCreateOptions, 'name'> { export interface GuildChannelCloneOptions extends BaseCategoryCreateChannelOptions {
name?: string; parent?: CategoryChannelResolvable | null;
} }
export interface GuildChannelEditOptions { export interface GuildChannelEditOptions {
@@ -6397,18 +6394,27 @@ export interface GuildListMembersOptions {
limit?: number; limit?: number;
} }
// TODO: use conditional types for better TS support export interface BaseGuildScheduledEventOptions {
export interface GuildScheduledEventCreateOptions { channel?: GuildVoiceChannelResolvable | null;
channel?: GuildVoiceChannelResolvable;
description?: string; description?: string;
entityMetadata?: GuildScheduledEventEntityMetadataOptions; entityMetadata?: GuildScheduledEventEntityMetadataOptions;
entityType: GuildScheduledEventEntityType; entityType?: GuildScheduledEventEntityType;
image?: Base64Resolvable | BufferResolvable | null; 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; name: string;
privacyLevel: GuildScheduledEventPrivacyLevel; privacyLevel: GuildScheduledEventPrivacyLevel;
reason?: string;
recurrenceRule?: GuildScheduledEventRecurrenceRuleOptions; recurrenceRule?: GuildScheduledEventRecurrenceRuleOptions;
scheduledEndTime?: DateResolvable;
scheduledStartTime: DateResolvable; scheduledStartTime: DateResolvable;
} }
@@ -6445,9 +6451,7 @@ export type BaseGuildScheduledEventRecurrenceRuleOptions<
export interface GuildScheduledEventEditOptions< export interface GuildScheduledEventEditOptions<
Status extends GuildScheduledEventStatus, Status extends GuildScheduledEventStatus,
AcceptableStatus extends GuildScheduledEventSetStatusArg<Status>, AcceptableStatus extends GuildScheduledEventSetStatusArg<Status>,
> extends Omit<Partial<GuildScheduledEventCreateOptions>, 'channel' | 'recurrenceRule'> { > extends BaseGuildScheduledEventOptions {
channel?: GuildVoiceChannelResolvable | null;
recurrenceRule?: GuildScheduledEventRecurrenceRuleOptions | null;
status?: AcceptableStatus; status?: AcceptableStatus;
} }
@@ -6580,7 +6584,7 @@ export interface InteractionDeferUpdateOptions {
withResponse?: boolean; withResponse?: boolean;
} }
export interface InteractionReplyOptions extends BaseMessageOptions, MessageOptionsPoll { export interface InteractionReplyOptions extends BaseMessageSendOptions, MessageOptionsPoll {
flags?: flags?:
| BitFieldResolvable< | BitFieldResolvable<
Extract< Extract<
@@ -6747,11 +6751,15 @@ export interface BaseMessageOptions {
| JSONEncodable<APIMessageTopLevelComponent> | JSONEncodable<APIMessageTopLevelComponent>
| TopLevelComponentData | TopLevelComponentData
)[]; )[];
content?: string; content?: string | null;
embeds?: readonly (APIEmbed | JSONEncodable<APIEmbed>)[]; embeds?: readonly (APIEmbed | JSONEncodable<APIEmbed>)[];
files?: readonly (Attachment | AttachmentPayload | BufferResolvable | FileBodyEncodable<APIAttachment> | Stream)[]; files?: readonly (Attachment | AttachmentPayload | BufferResolvable | FileBodyEncodable<APIAttachment> | Stream)[];
} }
export interface BaseMessageSendOptions extends BaseMessageOptions {
content?: string;
}
export interface MessageOptionsPoll { export interface MessageOptionsPoll {
poll?: JSONEncodable<RESTAPIPoll> | PollData; poll?: JSONEncodable<RESTAPIPoll> | PollData;
} }
@@ -6777,7 +6785,7 @@ export interface MessageOptionsStickers {
} }
export interface BaseMessageCreateOptions export interface BaseMessageCreateOptions
extends BaseMessageOptions, MessageOptionsPoll, MessageOptionsFlags, MessageOptionsTTS, MessageOptionsStickers { extends BaseMessageSendOptions, MessageOptionsPoll, MessageOptionsFlags, MessageOptionsTTS, MessageOptionsStickers {
enforceNonce?: boolean; enforceNonce?: boolean;
nonce?: number | string; nonce?: number | string;
} }
@@ -6787,11 +6795,10 @@ export interface MessageCreateOptions extends BaseMessageCreateOptions {
} }
export interface GuildForumThreadMessageCreateOptions export interface GuildForumThreadMessageCreateOptions
extends BaseMessageOptions, MessageOptionsFlags, MessageOptionsStickers {} extends BaseMessageSendOptions, MessageOptionsFlags, MessageOptionsStickers {}
export interface MessageEditOptions extends Omit<BaseMessageOptions, 'content'> { export interface MessageEditOptions extends BaseMessageOptions {
attachments?: readonly (Attachment | JSONEncodable<APIAttachment>)[]; attachments?: readonly (Attachment | JSONEncodable<APIAttachment>)[];
content?: string | null;
flags?: flags?:
| BitFieldResolvable< | BitFieldResolvable<
Extract<MessageFlagsString, 'IsComponentsV2' | 'SuppressEmbeds'>, Extract<MessageFlagsString, 'IsComponentsV2' | 'SuppressEmbeds'>,
@@ -7343,7 +7350,7 @@ export interface WebhookFetchMessageOptions {
} }
export interface WebhookMessageCreateOptions export interface WebhookMessageCreateOptions
extends BaseMessageOptions, MessageOptionsPoll, MessageOptionsFlags, MessageOptionsTTS { extends BaseMessageSendOptions, MessageOptionsPoll, MessageOptionsFlags, MessageOptionsTTS {
appliedTags?: readonly Snowflake[]; appliedTags?: readonly Snowflake[];
avatarURL?: string; avatarURL?: string;
threadId?: Snowflake; threadId?: Snowflake;