Javascript + JsDoc:如何记录像地图这样的新ES6数据类型?

时间:2016-07-12 06:41:05

标签: javascript ecmascript-6 jsdoc jsdoc3

我试图在我的ES6项目中使用JSDoc,我正在返回一张地图:

/**
 * Some documentation.. 
 *
 * @returns {undefined} <- This should be replaced
 */
function returningMap() {
    const someMap = new Map();
    someMap.set("key", {a, b, c});
    return someMap;
}

我应该如何使用@returns进行记录?

没有好的答案here

2 个答案:

答案 0 :(得分:3)

答案简单而美丽:

/**
 * Some documentation.
 *
 * @return {Map<String, Object>}
 */
function returningMap() {
    const someMap = new Map();
    someMap.set("key", {a, b, c});
    return someMap;
}

基本模式为Map<KeyType, ValueType>。从您的示例中,key将是一个字符串并且值为一个对象。您甚至可以继续声明您的对象。例如:

/**
 * @typedef {Object} MyObject
 * @property {Number} a
 * @property {Number} b
 * @property {String} c
 */

然后您的地图将被声明为Map<String, MyObject>。很酷,不是吗?您还可以嵌套其他地图甚至是集合,例如Map<Number, Set<MyObject>>

答案 1 :(得分:0)

您最好的选择可能是在某处定义Mapbe found here的朋友:

/**
 * The Map object is a simple key/value map. Any value (both objects and primitive values) may be used as either a key or a value.
 * @external Map
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map}
 */

然后会定义您的类型,因此您可以在评论中说@returns {Map}

在一个地方获取所有网址和单行的便捷位置来自@external