Страницы

Поиск по вопросам

среда, 22 января 2020 г.

JSDoc. Как правильно описать код для правильного перехода в IDE?

#javascript #nodejs #ecmascript_6 #jsdoc


Как правильно описать код с помощью JSDoc? Например, у меня есть компонент базы данных

/**
     * A namespace.
     * @namespace components
     * @class Db
     */
    class Db {
      /**
       *
       * @param {Function} cb
       * @returns {*}
       */
      connect(cb) {

        return mongoose.connect(this.url, (err) => {
          cb()
         });
      }

    }


И есть IoC контейнер, который возвращает экземпляр этого класса:

/**
 * @type {components.Db}
 */    
let db = diContainer.resolve('db');


Но, при обращении к 

db.connect()


IDE не видит функцию connect, т.е. моя IDE не хочет "прыгать" к классу Db.

Подскажите, как описать класс и переменную db, чтобы они были связаны с помощью JSDoc
для IDE?

Пробовал в следующих IDE: WebStorm, PhpStorm.
    


Ответы

Ответ 1



Для описания параметра типа функция, (метод обратного вызова 'callback'), существует специальный тэг. Как оформлять методы обратного вызова (callback) можно почитать тут. Пример кода, с использованием тэга @callback: /** * Callback for adding two numbers. * * @callback addStuffCallback * @param {int} sum - An integer. */ /** * Add two numbers together, then pass the results to a callback function. * * @param {int} x - An integer. * @param {int} y - An integer. * @param {addStuffCallback} callback - A callback to run. */ function addStuff(x, y, callback) { callback(x+y); }

Комментариев нет:

Отправить комментарий