【问题标题】:How can I JSDoc my enumify "enums"?我怎样才能 JSDoc 我的枚举“枚举”?
【发布时间】:2018-06-24 19:22:13
【问题描述】:

使用Enumify library

我想记录我创建的枚举,例如,

import { Enum } from 'enumify';

class CMD extends Enum {};

CMD.initEnum({
  REBOOT: { byte: 0x00 },
  SLEEP:  { byte: 0x01 },
});

export default CMD;

在主线代码中,它们的访问方式如下:

import CMD from './command';

console.log(CMD.REBOOT);

由于枚举附加到CMD,并在initEnum 调用期间创建, 无法将定义嵌入到创作中。

我能想到的唯一解决方法是提取值, 记录每个const,并使用initEnum中的值:

/** Some doc */
const REBOOT = { byte: 0x00 };

/** More doc */
const SLEEP  = { byte: 0x01 };

CMD.initEnum({
  REBOOT,
  SLEEP,
});

这并不糟糕,但它并没有使层次结构清晰,例如,它是 CMD.REBOOT 到外面的世界。

使用 @name 失败,因为我无法在名称中嵌入枚举的“容器” 不引用它,并且引用显示在文档中。我还必须用 实际情况并非如此,所以 JSDoc 知道如何记录它:

/**
 * @name 'CMD.REBOOT'
 * @global
 */

还有其他选择吗?我只需要在文档中指出它们存在,最好是低开销,因为 它们通常只是我们甚至不关心的简单值。

【问题讨论】:

    标签: javascript jsdoc jsdoc3


    【解决方案1】:

    你累了吗@lends?像这样记录静态成员似乎是合法的

    CMD.initEnum(/** @lends CMD */{
      REBOOT: { byte: 0x00 },
      SLEEP:  { byte: 0x01 },
    });
    

    【讨论】:

    • 这似乎很有希望——但我无法弄清楚避免为 CMD 类获得重复条目的魔法咒语(我也尝试过使用 @namespace和 i> 个人成员。我什至不知道我尝试了多少组合,可能至少一打或两个:(我可能不得不离开 JSDoc。
    猜你喜欢
    • 2012-02-09
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多