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