dme*_*rtl 30
如果您正在寻找如何记录数组中对象的类型,您需要这样的东西:
/**
* @param {String[]} aliases
*/
Run Code Online (Sandbox Code Playgroud)
http://code.google.com/p/jsdoc-toolkit/wiki/TagParam#Parameter_Type_Information
Gaj*_*jus 16
给定一个screenings
参数:
screenings = [
{
timestamp: 1440157537,
url: 'https://stackoverflow.com/a/22787287/1269037',
},
{
timestamp: ...,
url: ...,
},
];
Run Code Online (Sandbox Code Playgroud)
您可以通过以下三种方式之一来记录它:
@typedef
:/**
* @typedef {Object} screening
* @property {Number} timestamp - UNIX timestamp.
* @property {String} url - Booking URL.
*/
/**
* @param {screening[]}
*/
function positionTimes (screenings) {}
Run Code Online (Sandbox Code Playgroud)
当有多个函数使用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) {}
Run Code Online (Sandbox Code Playgroud)
/**
* @param {Object[]} screenings
* @param {Number} screenings[].timestamp - Unix timestamp.
* @param {String} screenings[].url - Booking URL.
*/
function positionTimes (screenings) {}
Run Code Online (Sandbox Code Playgroud)
这不适用于描述@return
ed类型,因为返回值不带名称.
/**
* @param {Array.<{timestamp: Number, url: String}>} screenings
*/
function positionTimes (screenings) {}
Run Code Online (Sandbox Code Playgroud)
这种方法的一个优点是它是单行的,所以你可以在@return
声明中使用它,而第二种方法不起作用.
集合定义方法的缺点是它不允许描述属性值.
虽然您可能会发现某些其他答案中给出的指导对您有用,但我更喜欢这种语法:
/**
* @return {Array<String>} ...
*/
Run Code Online (Sandbox Code Playgroud)
与其他人提供的指导相比,我认为这更符合您在问题中给出的示例的期望.
以下是有关JSDoc的最佳信息来源:https://wiki.servoy.com/display/public/DOCS/JSDoc+Annotations