Javascript + JsDoc:如何记录像地图这样的新 ES6 数据类型?
Javascript + JsDoc: How to document new ES6 datatypes like map?
我正在尝试在我的 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。
你最好的选择可能是在某处定义 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}
*/
然后你的类型将被定义,所以你可以像评论说的那样说@returns {Map}
。
在一个地方获取所有 URL 和一行的方便的地方是 tern。
答案简单又漂亮:
/**
* Some documentation.
*
* @return {Map<String, Object>}
*/
function returningMap() {
const someMap = new Map();
someMap.set("key", {a, b, c});
return someMap;
}
基本模式是Map<KeyType, ValueType>
。在您的示例中,键是一个字符串,值是一个对象。您甚至可以继续声明您的对象。例如:
/**
* @typedef {Object} MyObject
* @property {Number} a
* @property {Number} b
* @property {String} c
*/
然后您的地图将被声明为 Map<String, MyObject>
。很酷,不是吗?您还可以嵌套其他地图甚至集合,例如 Map<Number, Set<MyObject>>
.
我正在尝试在我的 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。
你最好的选择可能是在某处定义 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}
*/
然后你的类型将被定义,所以你可以像评论说的那样说@returns {Map}
。
在一个地方获取所有 URL 和一行的方便的地方是 tern。
答案简单又漂亮:
/**
* Some documentation.
*
* @return {Map<String, Object>}
*/
function returningMap() {
const someMap = new Map();
someMap.set("key", {a, b, c});
return someMap;
}
基本模式是Map<KeyType, ValueType>
。在您的示例中,键是一个字符串,值是一个对象。您甚至可以继续声明您的对象。例如:
/**
* @typedef {Object} MyObject
* @property {Number} a
* @property {Number} b
* @property {String} c
*/
然后您的地图将被声明为 Map<String, MyObject>
。很酷,不是吗?您还可以嵌套其他地图甚至集合,例如 Map<Number, Set<MyObject>>
.