我在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
等等,无济于事。有人能指出我正确的方向吗?
答案 0 :(得分:2)
最后的作品,这是在没有警告的情况下编译的:
/**
* @param {string} name
* @param {(function(*)|string)=} opt_callback
* @param {string=} opt_dataStr
*/
function fn(name, opt_callback, opt_dataStr) {}
fn('a','b');