如何将消息发送到指定的频道 - Discord.js v13 TypeScript
Posted
技术标签:
【中文标题】如何将消息发送到指定的频道 - Discord.js v13 TypeScript【英文标题】:How to send message to specified Channel - Discord.js v13 TypeScript 【发布时间】:2021-10-29 16:18:11 【问题描述】:我最近开始使用 TypeScript,大家肯定都知道 Discord.js 最近已迁移到 v13。在此之后,我一直在努力寻找一种使用给定频道 ID 将消息发送到指定频道的方法。这是我当前使用的代码:
// Define Channel ID
const messageChannelId = 'CHANNEL_ID';
// Define Channel
const messageChannel = client.channels.cache.get(messageChannelId);
// Send Message to Channel
if (messageChannel && messageChannel.type === 'GUILD_TEXT') messageChannel.send('Hello World');
奇怪的是,以下代码工作正常,它会将消息“Hello World”发送到通道,但是当我将鼠标悬停在 Visual Studio Code 中显示 Property 'send' does not exist on type 'Channel'
的发送方法上时,我总是会遇到智能感知错误。如果有人知道为什么会发生这种情况,或者有解决此错误的方法,请告诉我。 Discord.js 的文档没有显示 Channel 类型的 send 方法,但仍然允许它工作,我不知道如何解决这个问题。
感谢您的帮助。
【问题讨论】:
【参考方案1】:send
方法不在 Channel
类型上。它的类型为TextChannel
。 client.channels.cache.get
返回一个 Channel
因为它也可能是一个语音通道!您必须添加 as TextChannel
才能删除该错误
const TextChannel = require('discord.js')
// Define Channel
const messageChannel = client.channels.cache.get(messageChannelId) as TextChannel;
【讨论】:
非常感谢!我想知道为什么我在文档中找不到它,但这是有道理的以上是关于如何将消息发送到指定的频道 - Discord.js v13 TypeScript的主要内容,如果未能解决你的问题,请参考以下文章