[英]jsdoc: how to document properties using bracket notation?
Given this rather silly function, how should documentation be written for "range" param?鉴于这个相当愚蠢的功能,应该如何为“范围”参数编写文档?
/**
* @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);
}
}
Neither dot nor bracket notation seems to work.点和括号符号似乎都不起作用。 Property types (Object and number) are recognized, however their names are not.可以识别属性类型(对象和编号),但不能识别它们的名称。
Types can be specified as complex objects:类型可以指定为复杂对象:
/**
* @param {number} value
* @param {{'<': number, '<=': number, '>': number, '>=': number}} range
*/
function testIsInRange(value, range) {
...
}
Alternatively, destructuring can help, though it'll require renaming the parameters to non-symbolic names:或者,解构可以提供帮助,尽管它需要将参数重命名为非符号名称:
/**
* @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.