javascript - 当我一一添加数据对象的成员时,使用 JSDoc 记录它们的正确方法是什么?

标签 javascript jsdoc jsdoc3

我有一个 JS 数据对象,它只保存一些静态项目。我不会在 { }; 中一次性声明所有内容;我从一个空对象开始,然后一次添加一个项目。例如:

var ScapeStuff = {};

// some generic stuff
ScapeStuff.generic = new SomeClass(...);

// water
ScapeStuff.water = new SomeClass(...);

// dirt of various moisture levels
var dry = someValue
var wet = anotherValue
// interpolate moisture...
ScapeStuff.dirt0 = new SomeClass(dry);
ScapeStuff.dirt1 = new SomeClass((dry + dry + wet) / 3);
ScapeStuff.dirt2 = new SomeClass((dry + wet + wet) / 3);
ScapeStuff.dirt3 = new SomeClass(wet);

// some other types of stuff..

// finally, export this data object
module.exports = ScapeStuff;

我想使用 JSDoc 记录我的 ScapeStuff 数据对象,并用描述该事物的 JSDoc 注释替换 //water 等注释行。

我可以在 ScapeStuff = {} 上方添加一个巨大的 JSDoc 注释,并使用 @member 为每个属性项编写描述,但该文件可能是很长,所以我真正想要的是源代码中每个属性的 JSDoc 注释就位于该属性之前。

在这种情况下使用内联 JSDoc 注释的正确方法是什么?

最佳答案

我自己找到了答案。

首先,我将 ScapeStuff 容器记录为 @namespace,如下所示:

/**
 * Stuff (that is, THREE.Material) that things in scapes can be made out of.
 * @namespace
 */
var ScapeStuff = {};

现在我可以使用 @memberof告诉 JSDoc,我添加到最初为空的对象中的每个新事物都是 ScapeStuff 命名空间的成员。

/** some generic stuff
  * @memberof ScapeStuff */
ScapeStuff.generic = new SomeClass(...);

/** water
  * @memberof ScapeStuff */
ScapeStuff.water = new SomeClass(...);

所以,我实现了我的愿望——我可以记录它们在源中出现的位置,并且仍然让 JSDoc 将它们显示为位于父对象内部。耶我!

关于javascript - 当我一一添加数据对象的成员时,使用 JSDoc 记录它们的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28689849/

相关文章:

javascript - Android 使用没有 WebView 的 V8

javascript - IE9 事件是否完全符合 DOM Level 2 标准?

javascript - 如何在react对象中使用if else条件

javascript - 当它是包含对象的数组时如何在 JSDoc 中记录变量?

javascript - 当用户使用键盘时如何禁用鼠标悬停效果?

requirejs - JSDOC:是否可以链接到模块属性?

javascript - JSDoc 中是否有 Implements 或 Extends 注释?

javascript - jsdoc问题: Full path to source file is displayed (unwantedly)

javascript - JSDoc 无法使用此示例脚本,为什么?

angularjs - 带有 AngularJS 的 JSDoc