Как документировать Array
возвращаемое значение (и параметры) в JSDoc, когда элементы массива могут быть либо из следующих:
- Тип (например,
String
,Array
). - Литерал объекта.
Как документировать Array
возвращаемое значение (и параметры) в JSDoc, когда элементы массива могут быть либо из следующих:
String
, Array
).Если вы ищете, как документировать тип объектов в массиве, вы хотите что-то вроде этого:
/**
* @param {String[]} aliases
*/
http://code.google.com/p/jsdoc-toolkit/wiki/TagParam#Parameter_Type_Information
Хотя вы можете обнаружить, что руководство, приведенное в некоторых других ответах, работает для вас, я предпочитаю этот синтаксис:
/**
* @return {Array<String>} ...
*/
И по сравнению с рекомендациями, которые другие предложили, я думаю, что это ближе к вашему ожиданию, основанному на примере, который вы даете в своем вопросе.
Здесь отличный источник информации о JSDoc: https://wiki.servoy.com/display/public/DOCS/JSDoc+Annotations
Для параметра 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
, где второй метод не будет работать.
Недостатком подхода определения коллекции является то, что он не позволяет описывать значения свойств.
В соответствии с doco @returns
/**
* @returns {Array} Lines from the file.
*/
function readLines(filepath) {
}
В документации для JSDoc на http://usejsdoc.org/ приведен пример для массива с элементами типа MyClass
. Есть две возможности. Один выглядит следующим образом:
@param{MyClass[]}
Другой такой:
@param{Array.<MyClass>}
Помните о .
между Array
и <
.