如何向指定频道发送消息 - Discord.js v13 TypeScript
2021-08-31
2632
我最近开始使用 TypeScript,你们肯定都知道 Discord.js 最近已升级到 v13。在此之后,我一直在努力寻找一种使用给定 Channel 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 类型上的发送方法,但仍允许它工作,我不知道如何解决这个问题。
感谢您的帮助。
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;
MrMythical
2021-08-31