如何将消息发送到指定的频道 - 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 类型上。它的类型为TextChannelclient.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的主要内容,如果未能解决你的问题,请参考以下文章

如何使用不和谐机器人将消息发送到特定频道?

如何将不和谐消息发送到另一个频道? (不和谐 JS)

如何让机器人在收到来自某个消息的反应后将消息发送到特定频道

如何发送 cron 消息以发送到特定频道

如何将此消息发送到另一个特定频道?

如何使不和谐机器人将消息发送到不和谐 Node js 的特定频道机器人