Javascript 如何在JSDoc中将函数定义为回调实现?
我这样定义了一个Javascript 如何在JSDoc中将函数定义为回调实现?,javascript,jsdoc,Javascript,Jsdoc,我这样定义了一个@回调: /** * @callback MyClass~Handler * @param {string} target * @param {Options} options - Original options */ 我用它来定义我的类原型: /** * @param {string} name - The name * @param {MyClass~Handler} handler * @private */ MyClass.prototype._bui
@回调
:
/**
* @callback MyClass~Handler
* @param {string} target
* @param {Options} options - Original options
*/
我用它来定义我的类原型:
/**
* @param {string} name - The name
* @param {MyClass~Handler} handler
* @private
*/
MyClass.prototype._builder = function(name, handler) { //...
但是如何告诉JSDoc下面的函数与我的MyClass~Handler
具有相同的定义(类似于下面代码中的@isacallback
)
我没有对此进行测试,但是由于
@callback
只定义了一个类型,您不能使用@type
声明吗
换言之:
/**
* Default handler
* @type {MyClass-Handler}
* @private
*/
MyClass.prototype._defaultHandler = function(target, options) { // ...
有关
@type
的更多信息,请参阅,实际上并非如此,因为@type
定义了一个类(如您所说的类型),因此我无法使用该注释描述函数参数……我想您可能误解了:@type
不是用来定义类的(这就是@typedef
的用途)。@callback
定义了类型(因为@callback
基本上只限于@typedef
函数),然后您可以使用@type
引用该定义(您希望使用不存在的@isacallback
标记的方式),jsdoc将其显示为成员而不是方法,尽管它至少以正确的方式链接到正确的类型。如果您添加了@函数
(试图澄清这是一种方法),则文档会错误地将@type
显示为其返回类型。
/**
* Default handler
* @type {MyClass-Handler}
* @private
*/
MyClass.prototype._defaultHandler = function(target, options) { // ...