Подтвердить что ты не робот

Возвращаемое значение коллекции документов (массив типа) и параметр в JSDoc

Как документировать Array возвращаемое значение (и параметры) в JSDoc, когда элементы массива могут быть либо из следующих:

  • Тип (например, String, Array).
  • Литерал объекта.
4b9b3361

Ответ 2

Хотя вы можете обнаружить, что руководство, приведенное в некоторых других ответах, работает для вас, я предпочитаю этот синтаксис:

/**
 * @return {Array<String>} ...
 */

И по сравнению с рекомендациями, которые другие предложили, я думаю, что это ближе к вашему ожиданию, основанному на примере, который вы даете в своем вопросе.

Здесь отличный источник информации о JSDoc: https://wiki.servoy.com/display/public/DOCS/JSDoc+Annotations

Ответ 3

Для параметра screenings:

screenings = [
    {
        timestamp: 1440157537,
        url: 'https://stackoverflow.com/a/22787287/1269037',
    },
    {
        timestamp: ...,
        url: ...,
    },
];

Вы можете документировать его одним из трех способов:

Использование @typedef:

/**
 * @typedef {Object} screening
 * @property {Number} timestamp - UNIX timestamp.
 * @property {String} url - Booking URL.
 */

/**
 * @param {screening[]}
 */
function positionTimes (screenings) {}

Когда есть несколько функций, которые используют вариацию объекта screening, вы можете использовать пространство имен функций, например.

/**
 * @typedef {Object} positionTimes~screening
 * @property {Number} timestamp - UNIX timestamp.
 * @property {String} url - Booking URL.
 */

/**
 * @param {positionTimes~screening[]}
 */
function positionTimes (screenings) {}

/**
 * @typedef {Object} filterTimes~screening
 * @property {Number} timestamp - UNIX timestamp.
 * @property {String} url - Booking URL.
 */

/**
 * @param {filterTimes~screening[]}
 */
function filterTimes (screenings) {}

Документирование свойств значений в массиве:

/**
 * @param {Object[]} screenings
 * @param {Number} screenings[].timestamp - Unix timestamp.
 * @param {String} screenings[].url - Booking URL.
 */
function positionTimes (screenings) {}

Это не будет работать для описания @return ed типов, потому что возвращаемое значение не принимает имя.

Использование определения коллекции:

/**
 * @param {Array.<{timestamp: Number, url: String}>} screenings
 */
function positionTimes (screenings) {}

Преимущество этого подхода заключается в том, что он однострочный, поэтому вы можете использовать его в объявлениях @return, где второй метод не будет работать.

Недостатком подхода определения коллекции является то, что он не позволяет описывать значения свойств.

Ответ 4

В соответствии с doco @returns

/** 
 * @returns {Array} Lines from the file.
 */
function readLines(filepath) {
}

Также см..

Ответ 5

В документации для JSDoc на http://usejsdoc.org/ приведен пример для массива с элементами типа MyClass. Есть две возможности. Один выглядит следующим образом:

@param{MyClass[]}

Другой такой:

@param{Array.<MyClass>}

Помните о . между Array и <.