我在 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/