Estoy trabajando en un bot de discordia en mecanografiado y en lugar de pasar cliente como argumento en todas partes, preferiría acceder solo con base.client message.client que todo extiende la clase base. El único problema es que siempre que hago message.client tengo que informar al compilador que la clase de cliente es mi propia clase de DiscordClient :
const client = message.client as DiscordClient const client = interaction.client as DiscordClient //Another exampleHe extendido tipos globales antes en una aplicación Express que utilicé, así que sé que es posible, pero creo que estoy extendiendo la clase incorrecta.
Forma correcta desde una aplicación epxress:
declare global { namespace Express { interface User extends PrismaUser {} } }Probé con mayúsculas y minúsculas en caso de que ese fuera el problema, pero eso no lo solucionó.
declare global { namespace Base { interface client extends DiscordClient {} interface Client extends DiscordClient {} } } Esta es la clase base que estoy tratando de extender desde discord.js :
export abstract class Base { public constructor(client: Client); public readonly client: Client; public toJSON(...props: Record<string, boolean | string>[]): unknown; public valueOf(): string; } Editar: después de buscar en la biblioteca express, descubrí que estaba extendiendo una interfaz, por eso funcionaba, así que no creo que lo mismo sea posible para discord.js