[英]jsdoc: how to document properties using bracket notation?
鑒於這個相當愚蠢的功能,應該如何為“范圍”參數編寫文檔?
/**
* @param {number} value
* @param {Object} range
* @param {number} range['<']
* @param {number} range['<=']
* @param {number} range['>']
* @param {number} range['>=']
*/
function testIsInRange(value, range) {
var threshold;
if ((threshold = range['<'], threshold !== undefined) && !(value < threshold)) {
fail('Value must be less than ' + threshold);
}
if ((threshold = range['<='], threshold !== undefined) && !(value <= threshold)) {
fail('Value must be less than or equal to ' + threshold);
}
if ((threshold = range['>'], threshold !== undefined) && !(value > threshold)) {
fail('Value must be greater than ' + threshold);
}
if ((threshold = range['>='], threshold !== undefined) && !(value >= threshold)) {
fail('Value must be greater than or equal to ' + threshold);
}
}
點和括號符號似乎都不起作用。 可以識別屬性類型(對象和編號),但不能識別它們的名稱。
類型可以指定為復雜對象:
/**
* @param {number} value
* @param {{'<': number, '<=': number, '>': number, '>=': number}} range
*/
function testIsInRange(value, range) {
...
}
或者,解構可以提供幫助,盡管它需要將參數重命名為非符號名稱:
/**
* @param {number} value
* @param {number} lt
* @param {number} lte
* @param {number} gt
* @param {number} gte
*/
function testIsInRange(value, {'<':lt, '<=':lte, '>':gt, '>=':gte}) {
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.