ES6 iterables的JSDoc类型名称

时间:2015-09-26 17:34:19

标签: javascript annotations ecmascript-6 jsdoc iterable

我有一个带有可迭代的javascript方法,即the es6 iterable protocol之后的任何对象。我想在它的JSDoc中注释它。我如何引用'iterable'类型?

/**
 * @param {__WHAT_GOES_HERE__?} iterable
 */
function consume(iterable) { ... }

我可以在JSDoc中写出整个协议,但这有点......非常笨拙:

 * @param {
 *   {
 *     Symbol.iterator: function(): {
 *       next: function() : {
 *         value: T|undefined,
 *         done: boolean
 *       }
 *     }
 *   }
 * } iterable

此外,工具似乎不了解Symbol.iterator的含义。

1 个答案:

答案 0 :(得分:0)

我目前的解决方法是使用适当的方法定义IterableIterator类。我将这些类放在编辑器可见的位置但实际上没有使用,因此linter可以看到定义,但它们在实际输出中并不包含在膨胀中。

然后,在获取/返回序列的JSDoc方法中,我可以引用Iterable<T>Iterator<T>