我在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');