Estoy tratando de ver si un usuario tiene un rol con discordjs v13. Estoy usando mecanografiado también.
En varias publicaciones, he visto a personas usar este código:
function handleCommand(interaction: CommandInteraction) { ... let isAdmin = interaction.member.roles.cache.some(role => role.name === 'Admin') ...
Sin embargo, me sale un error:
Property 'cache' does not exist on type 'string[]'. 22 console.log(interaction.member.roles.cache.some((r) => r.name == "Admin")); ~~~~~
¿Cuál es la forma correcta de hacer esto?
Como señaló amablemente Elitezen, interaction.member.roles
es una string[]
en lugar de un GuildMemberRoleManager
. ¡Lo lancé manualmente al tipo correcto y funcionó!
let roles = (interaction.member.roles as GuildMemberRoleManager).cache; let isAdmin = roles.some( (role) => role.name === "admin") );