Как я могу JSDoc мой enumify "enums"? - PullRequest
0 голосов
/ 23 июня 2018

Использование библиотеки Enumify .

Я хочу задокументировать созданные мной перечисления, например,

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, нет способа встроить определение в создание.

Единственный обходной путь I 'я смог выдвинуть значения, задокументировать каждый const и использовать значения в initEnum:

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

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

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

Это не ужасно, но это не делаетиерархия ясна, например, это CMD.REBOOT для внешнего мира.

Использование @name не удается, потому что я не могу вставить «контейнер» enum в имя без цитирования, а кавычки отображаются в документах.Я также должен пометить это чем-то, чего на самом деле нет, поэтому JSDoc знает, как это документировать:

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

Есть ли другие варианты?Мне просто нужно указать в документах, что они существуют, предпочтительно с небольшими накладными расходами, поскольку они часто являются просто простыми значениями, которые нам даже не нужны.

1 Ответ

0 голосов
/ 24 июня 2018

Вы устали @lends?Кажется законным задокументировать такие статические элементы

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