【问题标题】:Javascript + JsDoc: How to document new ES6 datatypes like map?Javascript + JsDoc:如何记录新的 ES6 数据类型,如地图?
【发布时间】:2016-11-14 06:29:41
【问题描述】:

我正在尝试在我的 ES6 项目中使用 JSDoc,我正在返回一个 Map:

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

我应该如何使用@returns 记录这一点?

没有好的答案here

【问题讨论】:

标签: javascript ecmascript-6 jsdoc jsdoc3


【解决方案1】:

答案简单而优美:

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

基本模式是Map&lt;KeyType, ValueType&gt;。从您的示例中, key 将是一个字符串并 value 一个对象。你甚至可以继续声明你的对象。例如:

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

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

【讨论】:

    【解决方案2】:

    您最好的选择可能是在某处定义Map@external 的朋友:

    /**
     * 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}
     */
    

    然后你的类型将被定义,所以你可以像 cmets 所说的那样说@returns {Map}

    tern 是在一个地方获取所有 URL 和单行代码的便捷位置。

    【讨论】:

      猜你喜欢
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 2022-06-28
      • 1970-01-01
      • 2015-02-05
      • 2016-12-19
      • 2013-04-07
      相关资源
      最近更新 更多