我试图记录这样的枚举:
/**
* Enum for the different types of tokens
* @memberof Ecre
* @enum {number}
* @readonly
*/
Ecre.TokenTypes = Object.freeze({
/**
* A string token
*/
"string": 1,
"comment": 2,
"number": 3,
"boolean": 4,
"identifier": 5
});
但是这并不像例外那样有效:string
是一个全球性的文件。
如何以正确的方式记录值?
我正在使用JSDoc 3.3.0-alpha9(星期六,2014年6月28日15:26:03 GMT)
答案 0 :(得分:4)
这是一个很老的问题,但答案仍然有用。 由于 Object.freeze 冻结了对象,因此可以在定义枚举后调用它。
/**
* Enum for the different types of tokens
* @memberof Ecre
* @enum {number}
* @readonly
*/
Ecre.TokenTypes = {
"string": 1,
"comment": 2,
"number": 3,
"boolean": 4,
"identifier": 5
};
Object.freeze(Ecre.TokenTypes);
答案 1 :(得分:0)
这就是我在我的代码中完成它的方式,它有效......
/**
* Enum: Alignment values
*
* @property {Number} Bottom
* @property {Number} BottomLeft
* @property {Number} BottomRight
* @property {Number} Center
* @property {Number} Left
* @property {Number} Right
* @property {Number} Top
* @property {Number} TopLeft
* @property {Number} TopRight
*
* @enum {Number}
* @readOnly
* @memberOf gc
*/
var Align = Object.freeze({
Bottom : 0,
BottomLeft : 1,
BottomRight : 2,
Center : 3,
Left : 4,
Right : 5,
Top : 6,
TopLeft : 7,
TopRight : 8
});
gc.Align = Align;
问题是,使用Object.freeze
使用jsdoc不会自动解析枚举,但是在您喜欢的文本编辑器中使用简单的宏,可以轻松生成@property
标记...
不是最佳选择,但至少生成的文档是相同的