When you type your custom command type, you'd pass client as your ExtendedClient, for example, not the DJS client
Genuinely so sorry if I'm just, blatantly missing the point lol, but won't I still have a problem with everything that discord.js provides me? Say, from client event objects?
eg
client.on('interactionCreate', async (interaction) => {
//(...)
command.execute(interaction);
}
typescript types interaction as Interaction<CacheType> because that's what djs types it- and thus, interaction.client will be typed as the djs class, not mine.
I understand that I could just pass my custom client, a la command.execute(interaction, customClient), but that's not the goal - I'm more curious if it's actually possible to maintain the portability provided by not having to pass an extra parameter around, while also being as kosher as possible with TS