jsDoc - 如何指定数组长度

时间:2014-04-01 12:42:44

标签: javascript arrays jsdoc maxlength specifications

jsDoc我可以指定我的数组参数和成员:

/**
 * @constructor
 * @param {Array.<string>} myArray
 */
function someFunction( myArray ){

    this.firstArray = myArray;

    /** @member {Array.<float>} */
    this.secondArray = [];

}

还有办法指定这些数组的lengthminLengthmaxLength吗?

2 个答案:

答案 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