#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); }
Комментариев нет:
Отправить комментарий