google-closure-compiler – 多个可选参数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

等等,无济于事.谁能指出我正确的方向?

最佳答案 最后的作品,这编译没有警告:

/**
  * @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

点赞