google-closure-compiler - 多个可选参数 JSDoc

标签 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

等等,无济于事。任何人都可以指出我正确的方向吗?

最佳答案

最后一个工作,这编译没有警告:

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

关于google-closure-compiler - 多个可选参数 JSDoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25879072/

相关文章:

javascript - 闭包编译器 - 保留内部属性而不是外部对象

javascript - 为什么闭包编译器偏爱 !0 而不是 true?

jquery - Internet Explorer、闭包编译器和尾随逗号

可选参数

javascript - JSDoc : How to declare inline params

javascript - JSDoc:如何记录返回传递构造函数实例的函数?

javascript - 在缩小期间排除调试 JavaScript 代码

command-line - Websphere Application Server 6.1(本地化): Override locale for console messages

javascript - 如何用 JavaScript 写出 "array of pattern"?