我正在尝试使用JS创建Discord机器人。我为要执行的每个命令创建一个.js文件,并且在“主要”脚本中进行了检查,该调用将调用其他命令脚本。当我说VS代码不会告诉我参数的变量类型,也不会告诉我有关方法调用的任何信息时,我将使用图片来显示我的意思。在这些命令.js脚本中,Intellisense似乎也不起作用。
背景信息:我有很多使用Java编程的经验。出于某种原因,JS似乎让我感到困惑,但是我想更好地学习和理解它。
我不会显示所有代码,仅显示示例所需的代码。
main.js脚本:
require('dotenv').config();
const { Client } = require('discord.js');
const client = new Client();
const prefix = "++";
const fs = require('fs');
client.commands = new Discord.Collection();
const commandFiles = fs.readdirSync('.src/commands/').filter(file => file.endsWith('.js'));
for(const file of commandFiles){
const command = require(`.src/commands/${file}`);
client.commands.set(command.name, command);
}
client.on('message', (message) => {
if(message.author.bot) return;
console.log(`[${message.author.tag}]: ${message.content}`);
if(!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if(command === 'ping'){
client.commands.get('ping').execute(message, args);
});
ping.js脚本:
module.exports = {
name: 'ping',
description: 'This is a ping command.',
execute(message, args){
message.channel.send('Pong!');
}
}
图片: 它只是说了任何一种,我认为是任何变量类型,但是……这似乎很杂乱且难以理解。
答案 0 :(得分:0)
Discord.js send()
返回Promise<(Message)>
或Promise<(Array<Message>)>
(discord.js docs for channel.send())。承诺对于任何API中的顺序任务都非常有用,但似乎不是您的环境可以识别的数据类型。如果VSCode和IntelliJ(以及许多其他IDE)无法识别方法的返回值的数据类型,或者未预定义(与JS函数或方法相比,它在Java中更常见),则它们将突出显示该方法的返回值为any
。