#javascript #visual-studio #autocomplete #discord.js
#javascript #visual-studio #автозаполнение #discord.js
Вопрос:
Visual Studio должным образом автозаполняет код для всего, что находится в index.js файл.
Например, если я набираю msg.member.
, VS показывает мне свойства / методы, связанные с GuildMember.
Однако для командных файлов в .commands group VS не выполняет автозаполнение вещей, связанных с discord.js-commando. Если я использую mysql, это автоматически завершается. Например, у меня есть следующий код:
const { Command } = require('discord.js-commando');
var mysql = require('mysql');
Когда я набираю mysql.
, VS показывает мне кучу функций, которые я могу вызвать. Однако он не выполняет автозаполнение материалов, связанных с discord.js-commando. Например, у меня снова есть несколько примеров кода (продолжение с первых двух строк)
module.exports = class nameCommand extends Command {
constructor(client) {
super(client, {
name: 'name',
group: 'group',
memberName: 'mName',
description: 'desc'
});
}
run(msg) {
}
};
В run(msg)
функции при наведении курсора на msg
VS показывает мне сообщение: any. Внутри функции, если я набираю msg.member.
, VS не предоставляет никаких предложений по автозаполнению.
TL; DR: VS автоматически завершает все, что не связано с discord.js-commando для командных файлов (расположенных в подкаталогах), но автоматически завершает должным образом для index.js файл в главном каталоге.
Что происходит, и как мне получить автозаполнение для командных файлов?
Ответ №1:
Ну, это очень просто, вам просто нужно добавить, в JSDOC вам нужно добавить тег @param, и чтобы назначить msg
параметру, вам просто нужно сделать;
const { Command, CommandoMessage } = require('discord.js-commando');
const mysql = require('mysql');
В верхней части вашего сообщения и после этого вы просто делаете:
module.exports = class nameCommand extends Command {
constructor(client) {
super(client, {
name: 'name',
group: 'group',
memberName: 'mName',
description: 'desc'
});
}
/**
* @param {CommandoMessage} msg
*/
run(msg) {
}
};
Вот и все, как я уже сказал, это очень просто, вам просто нужно добавить это во все ваши файлы и получить CommandoMessage