gpt4 book ai didi

javascript - 如何使用 jsdoc 3 或 jsdoc 记录 Requirejs (AMD) 模块?

转载 作者:行者123 更新时间:2023-12-03 00:24:09 27 4
gpt4 key购买 nike

我有两种类型的模块:

Require.js 主文件:

    require.config({
baseUrl: "/another/path",
paths: {
"some": "some/v1.0"
},
waitSeconds: 15,
locale: "fr-fr"
});


require( ["some/module", "my/module", "a.js", "b.js"],
function(someModule, myModule) {
}
);

中介模式:

define([], function(Mediator){

var channels = {};
if (!Mediator) Mediator = {};

Mediator.subscribe = function (channel, subscription) {
if (!channels[channel]) channels[channel] = [];
channels[channel].push(subscription);
};

Mediator.publish = function (channel) {
if (!channels[channel]) return;
var args = [].slice.call(arguments, 1);
for (var i = 0, l = channels[channel].length; i < l; i++) {
channels[channel][i].apply(this, args);
}
};

return Mediator;

});

如果可能的话,我如何使用 jsdoc3 来记录这个内容?

最佳答案

这是我对 SO 的第一个回答,请让我知道如何改进 future 的答案。

您的具体示例

我花了两天时间寻找这个问题的答案,似乎没有一种方法可以自动记录 RequireJS AMD 模块而没有一些冗余(例如重复的函数名称)。 Karthrik 的答案在生成文档方面做得很好,但是如果代码中的某些内容被重命名,文档仍然会根据 jsDoc 标签中的内容生成。

我最终所做的如下,是根据 Karthik 的示例进行调整的。请注意第 1 行的 @lends 标记,以及从 jsDoc 注释 block 中删除的 @name 标记。

 define([], /** @lends Mediator */ function(Mediator){
/**
* Mediator class
* This is the interface class for user related modules
* @class Mediator
*/

var channels = {};
if (!Mediator) Mediator = {};

/**
* .... description goes here ...
* @function
*
* @param {Number} channel .....
* @param {String} subscription ..............
* @example
* add the sample code here if relevent.
*
*/
Mediator.subscribe = function (channel, subscription) {
if (!channels[channel]) channels[channel] = [];
channels[channel].push(subscription);
};

Mediator.publish = function (channel) {
if (!channels[channel]) return;
var args = [].slice.call(arguments, 1);
for (var i = 0, l = channels[channel].length; i < l; i++) {
channels[channel][i].apply(this, args);
}
};

return Mediator;

});

据我了解,@lends 标记会将下一个对象文字中的所有 jsDoc 注释解释为 @lends 标记引用的类的一部分。在这种情况下,下一个对象文字是以 function(Mediator) { 开头的。 @name 标签被删除,以便 jsDoc 在源代码中查找函数名称等。

注意:我在放置 @lends 标记的同一位置使用了 @exports 标记。虽然这有效,但它会在文档中创建一个模块......而我只想为该类生成文档。这种方法对我有用!

一般 jsDoc 引用

关于javascript - 如何使用 jsdoc 3 或 jsdoc 记录 Requirejs (AMD) 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10172381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com