js-doc / google-closure-compiler如何记录传递的枚举对象本身?

时间:2016-11-10 15:27:05

标签: javascript enums google-closure-compiler jsdoc

e.g。

/**
 * Super my enum
 * @enum {number}
 */
MyEnum = {
    ONE: 1,
    TWO: 2
};

/**
 * @param {what type is it?} enumObj
 */
function showEnum(enumObj) {
  console.log(enumObj);
}

//show the enum definition object
showEnum(MyEnum);

如何将参数类型描述为MyEnum的值/实例,而不是MyEnum对象本身?

2 个答案:

答案 0 :(得分:1)

使用!MyEnum !表示“非空”。

/**
* @param {!MyEnum} enumObj
*/
function showEnum(enumObj) {
  console.log(enumObj);
}

答案 1 :(得分:0)

我在WebStorm和VSCode中测试的用于自动完成的解决方案是使用typeof MyEnum
它仍然是无效的JSDoc,但受IDE支持自动完成。

/**
 * @param {typeof MyEnum} enumObj
 */
function showEnum(enumObj) {
  console.log(enumObj);
}