我想知道使用require和jsdoc从JavaScript模块导出枚举的规范模式。现有的示例和问题似乎只考虑本地私有枚举。我的目标是尽可能提供最优质的文档和智能感知/代码完成。
这是我目前的最佳尝试:
var LawnMower = function () {
};
/**
* Enums for the valid heights to mow
* @readonly
* @enum {number}
*/
LawnMower.heights = {
Low: 0,
Medium: 1,
High: 2
};
// Doing this separately from above, or Visual Studio's intellisense won't recognize it as an enum :-(
LawnMower.heights = Object.freeze(LawnMower.heights);
/*
* @param {LawnMower.heights} height - The height of the deck on the mower
*/
LawnMower.prototype.mow = function (height) {};
module.exports = LawnMower;
这里有一些细节让我采用这种方法:
我们的团队正在使用Visual Studio,Ace + Tern和Atom。使用上面的模式,当我们编写这样的代码时:
var lm = new LawnMower();
lm.mow(
希望intellisense将显示参数名称,类型和描述。如果它填写“LawnMower.heights”,则可获得奖励积分。为了我们。 (Visual Studio为C#执行此操作)。
结果:
具体问题: 我是否正确地写了@param线?我相信名称路径“LawnMower.heights”是引用LawnMower静态成员的正确方法。
参考文献: