在jsDoc
我可以指定我的数组参数和成员:
/**
* @constructor
* @param {Array.<string>} myArray
*/
function someFunction( myArray ){
this.firstArray = myArray;
/** @member {Array.<float>} */
this.secondArray = [];
}
还有办法指定这些数组的length
,minLength
和maxLength
吗?
答案 0 :(得分:4)
我认为您在询问是否可以在类型表达式中包含最小/最大长度(例如,Array.<string>
)。
简而言之,答案是否定的。您需要记录每个数组描述中的最小/最大长度。
答案 1 :(得分:2)
我查看了UseJSDoc.org和Google的Closure Compiler,两个文档都没有说明如何指定数组长度。
我的猜测是编译器只检查类型,而不是长度,所以即使有明确描述数组长度的语法,不正确长度的数组仍可能通过编译器(不会抛出任何错误)。 / p>
执行此操作的最佳方法是参数的人类语言描述和返回类型:
/**
* Duplicates a 4-length array into itself.
* e.g. `[2, 3, 5, 8] => [2, 2, 3, 3, 5, 5, 8, 8]`
* @param {Array<number>} arr the array to duplicate (exactly 4 entries)
* @returns {Array<number>} the result (an array of length 8)
*/
function dupe(arr) {
...
}
仅供参考,您可以在Array.<number>
声明中使用Array<number>
,number[]
,甚至@type
。
如果此功能对您很重要(我当然会使用它!),您可以submit an issue。