【问题标题】:The right way to use JSDoc to document a data object's members, when I add them one by one?当我一一添加时,使用 JSDoc 记录数据对象的成员的正确方法是什么?
【发布时间】:2015-04-25 17:23:58
【问题描述】:

我有一个 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 数据对象,并将 // water 之类的注释行替换为描述该内容的 JSDoc cmets。

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

在这种情况下,内联 JSDoc cmets 的正确方法是什么?

【问题讨论】:

    标签: javascript jsdoc jsdoc3


    【解决方案1】:

    自己找到了答案。

    首先,我将 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 将它们显示为在父对象中。耶!

    【讨论】:

      猜你喜欢
      • 2017-02-06
      • 2014-08-04
      • 2013-12-13
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多