我想用JSDoc记录一个类似于通用地图的数据结构。首先,请注意,此结构不扩展Map
。
更普遍的问题是:如何正确地注释通用ES6类构造?
请考虑以下代码。标记的注释部分会在注释中产生错误。
/** @type {MyMap<string, number>} */
// ^^^^^^^^^^^^^^^^^^^^^ [js] Type 'MyMap' is not generic.
const map = new MyMap();
这是MyMap
:
// @ts-check
/**
* @template K, V
*/
class MyMap {
constructor() {
this._map = new Map();
}
}
我需要做什么才能将MyMap
视为通用类型?如何将K
和V
公开为结构的泛型类型?
(注意:我使用Visual Studio Code通过在我的JavaScript文件的顶部添加// @ts-check
来验证注释。)