为Google Closure Compiler注释“任何类型的零个或多个参数”

时间:2014-08-24 17:22:48

标签: javascript google-closure-compiler

我有一个与jQuery.noopangular.noopgoog.nullFunction相同的功能:它什么都不做,返回未定义,但它以callback(successFn || noop);的形式很方便

可以使用任意类型的任意数量的参数(0或更多)调用它。

这就是我目前的方式:

/**
 * @param varArgs {...*}
 */
var noop = function(varArgs) {};

问题:在没有参数的情况下调用时,Google Closure Compiler给了我这个:

Function noop: called with 0 argument(s). 
Function requires at least 1 argument(s) and no more than 1 argument(s).

有趣的是goog.nullFunction 是为Closure Compiler注释的,但是它的注释也存在缺陷,当它被一个或多个参数调用时会抛出错误:

Function noop: called with 1 argument(s).
Function requires at least 0 argument(s) and no more than 0 argument(s).

问题:如何正确注释我的noop功能?

1 个答案:

答案 0 :(得分:6)

the documentation起,语法为:

/**
 * @param {...*} varArgs
 */

首先输入变量类型,然后输入它的名称。在测试之后,您的示例确实会出错,但在使用正确的顺序时,它不会出现错误。