多个可选参数JSDoc

时间:2014-09-16 21:56:43

标签: google-closure-compiler optional-parameters jsdoc

我在js中有一个带有以下签名的函数:

  function foo(name, opt_callback, opt_dataStr);

我正在尝试使用JSDoc for Closure编译器进行注释,如下所示:

 /**
  * @param {string} name
  * @param {function(*)=} opt_callback
  * @param {string=} opt_dataStr
  */

但是每次传入opt_callback时,编译器都会生成十几种类型的警告,并且opt_dataStr是抱怨我正在传递一个字符串,我应该有一个函数。 我确信有一个简单的解决方案,如何正确注释,但我已经尝试过

 * @param {function(*)=|string=} opt_callback

 * @param {(function(*)|string)=} opt_callback

等等,无济于事。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

最后的作品,这是在没有警告的情况下编译的:

/**
  * @param {string} name
  * @param {(function(*)|string)=} opt_callback
  * @param {string=} opt_dataStr
  */
function fn(name, opt_callback, opt_dataStr) {}

fn('a','b');

Here is an example