Как получить автозаполнение для файлов в подкаталогах (discord.js-commando)?

#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