如何使用Google Closure Compiler记录回调参数的名称和描述?
阅读this answer on documenting callbacks with JSDoc后,我尝试使用@callback
和@typedef
以及@name
代码,但每个代码都遇到了问题。
使用@callback
,Closure会“非法使用未知的JSDoc标记”警告:
/**
* @callback EndDrawCallback
* @param {string} action - either "keep", "discard", or "cancel"
* @param {boolean} saveChanges - whether to mark changes as saved
**/
使用@typedef
,它会提供“与其他注释不兼容的类型注释”:
/**
* @typedef {function(string,boolean)}
* @param {string} action ...
* @param {boolean} saveChanges ...
**/
var EndDrawCallback;
使用@name
时,在尝试将回调名称用作类型时会发出警告“Unknown type EndDrawCallback”:
/**
* @name EndDrawCallback
* @function
* @param {string} action ...
* @param {boolean} saveChanges ...
**/
我能看到的唯一选择是
(a)在回调参数之后放弃并编写文档而不使用标签,或 (b)重构代码以将单个对象传递给具有命名属性的回调。
至少在这种情况下,(b)不是一种选择。有没有办法做到这一点?如果是这样,怎么样?
答案 0 :(得分:0)
使用--extra_annotation_name
标志指定编译器无法识别的JSDoc标记。由于编译器识别并使用@typedef
,因此您需要使用@callback
或@name
注释。