Использование библиотеки 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
*/
Есть ли другие варианты?Мне просто нужно указать в документах, что они существуют, предпочтительно с небольшими накладными расходами, поскольку они часто являются просто простыми значениями, которые нам даже не нужны.