Visual studio code 如何在JSDoc中记录复杂的回调需求,同时保持JSDoc';s生成器、闭包编译器和VS代码 请考虑以下JSDoc ED回调 /** * @callback create_stub * @param {Object} co_obj * An object containing method to create the stub. * @param {string} method_name * A member function name of co_obj. * ... */

Visual studio code 如何在JSDoc中记录复杂的回调需求,同时保持JSDoc';s生成器、闭包编译器和VS代码 请考虑以下JSDoc ED回调 /** * @callback create_stub * @param {Object} co_obj * An object containing method to create the stub. * @param {string} method_name * A member function name of co_obj. * ... */,visual-studio-code,google-closure-compiler,jsdoc,Visual Studio Code,Google Closure Compiler,Jsdoc,以上内容适用于JSDoc的文档生成器。将记录为typedef 然而,对于闭包编译器来说,它似乎工作得不好。我所说的“工作不好”是指: 即使它能工作,编译器也无法执行类型检查,我认为这是因为- 闭包编译器使用回调标记的唯一解决方案就是删除警告(请参阅)。 注意:该解决方案对我不起作用。我仍然收到“未知类型创建\u存根”警告 对于VS代码:Intellisense将不起作用。请参阅“”。 现在,有了@typedef,每个人都会很高兴,除了“我不能记录参数” 而且,使用@name(请参阅)-gener

以上内容适用于JSDoc的文档生成器。将记录为typedef

然而,对于闭包编译器来说,它似乎工作得不好。我所说的“工作不好”是指:
即使它能工作,编译器也无法执行类型检查,我认为这是因为-
闭包编译器使用回调标记的唯一解决方案就是删除警告(请参阅)。
注意:该解决方案对我不起作用。我仍然收到“未知类型创建\u存根”警告

对于VS代码:Intellisense将不起作用。请参阅“”。
现在,有了@typedef,每个人都会很高兴,除了“我不能记录参数”

而且,使用@name(请参阅)-generator将回调作为方法而不是typedef进行记录,闭包编译器似乎没有任何效果

最后,我想说的是,我目前正在使用我自己的解决方案,它同时使用@name和@typedef来使生成器、CC和VS代码保持愉快。样本:

/**
 * @function
 * @name Klass.typedefs.create_stub
 * @param {Object} co_obj 
 * An object containing method to create the stub.
 * @param {string} method_name
 * A member function name of co_obj.
 * ...
 *//**
 * @private
 * @typedef {function(Object, string)} Klass.typedefs.create_stub
 */
 Klass.typedefs.create_stub; // this line is needed for Closure-Compiler compatibility

谢谢您的时间。

您如何实际使用
create\u stub
为回调添加注释?或者您不这样做,并且您的解决方案仅用于文档目的?@CarlG
@param{Klass.typedefs.create_stub}cb