diff --git a/typings/index.d.ts b/typings/index.d.ts index 423bf9686..0c8c20e57 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -1566,7 +1566,7 @@ export class MessageComponentInteraction e public channelId: Snowflake; public deferred: boolean; public ephemeral: boolean | null; - public message: CacheTypeReducer; + public message: GuildCacheMessage; public replied: boolean; public webhook: InteractionWebhook; public inGuild(): this is MessageComponentInteraction<'present'>; @@ -1591,7 +1591,7 @@ export class MessageComponentInteraction e export class MessageContextMenuInteraction< Cached extends CacheType = CacheType, > extends ContextMenuInteraction { - public readonly targetMessage: CacheTypeReducer; + public readonly targetMessage: NonNullable['message']>; public inGuild(): this is MessageContextMenuInteraction<'present'>; public inCachedGuild(): this is MessageContextMenuInteraction<'cached'>; public inRawGuild(): this is MessageContextMenuInteraction<'raw'>; @@ -3924,7 +3924,7 @@ export interface CommandInteractionOption member?: CacheTypeReducer; channel?: CacheTypeReducer; role?: CacheTypeReducer; - message?: CacheTypeReducer; + message?: GuildCacheMessage; } export interface CommandInteractionResolvedData { diff --git a/typings/index.test-d.ts b/typings/index.test-d.ts index 2b28a1eac..ea50d0b9f 100644 --- a/typings/index.test-d.ts +++ b/typings/index.test-d.ts @@ -968,22 +968,37 @@ client.on('interactionCreate', async interaction => { } } + if (interaction.isMessageContextMenu()) { + expectType(interaction.targetMessage); + if (interaction.inCachedGuild()) { + expectType>(interaction.targetMessage); + } else if (interaction.inRawGuild()) { + expectType(interaction.targetMessage); + } else if (interaction.inGuild()) { + expectType(interaction.targetMessage); + } + } + if (interaction.isButton()) { expectType(interaction); expectType(interaction.component); + expectType(interaction.message); if (interaction.inCachedGuild()) { expectAssignable(interaction); expectType(interaction.component); + expectType>(interaction.message); expectType(interaction.guild); expectAssignable>(interaction.reply({ fetchReply: true })); } else if (interaction.inRawGuild()) { expectAssignable(interaction); expectType(interaction.component); + expectType(interaction.message); expectType(interaction.guild); expectType>(interaction.reply({ fetchReply: true })); } else if (interaction.inGuild()) { expectAssignable(interaction); expectType(interaction.component); + expectType(interaction.message); expectAssignable(interaction.guild); expectType>(interaction.reply({ fetchReply: true })); } @@ -992,19 +1007,23 @@ client.on('interactionCreate', async interaction => { if (interaction.isMessageComponent()) { expectType(interaction); expectType(interaction.component); + expectType(interaction.message); if (interaction.inCachedGuild()) { expectAssignable(interaction); expectType(interaction.component); + expectType>(interaction.message); expectType(interaction.guild); expectAssignable>(interaction.reply({ fetchReply: true })); } else if (interaction.inRawGuild()) { expectAssignable(interaction); expectType(interaction.component); + expectType(interaction.message); expectType(interaction.guild); expectType>(interaction.reply({ fetchReply: true })); } else if (interaction.inGuild()) { expectAssignable(interaction); expectType(interaction.component); + expectType(interaction.message); expectType(interaction.guild); expectType>(interaction.reply({ fetchReply: true })); } @@ -1013,19 +1032,23 @@ client.on('interactionCreate', async interaction => { if (interaction.isSelectMenu()) { expectType(interaction); expectType(interaction.component); + expectType(interaction.message); if (interaction.inCachedGuild()) { expectAssignable(interaction); expectType(interaction.component); + expectType>(interaction.message); expectType(interaction.guild); expectType>>(interaction.reply({ fetchReply: true })); } else if (interaction.inRawGuild()) { expectAssignable(interaction); expectType(interaction.component); + expectType(interaction.message); expectType(interaction.guild); expectType>(interaction.reply({ fetchReply: true })); } else if (interaction.inGuild()) { expectAssignable(interaction); expectType(interaction.component); + expectType(interaction.message); expectType(interaction.guild); expectType>(interaction.reply({ fetchReply: true })); }