我有一个带有可迭代的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
的含义。
答案 0 :(得分:0)
我目前的解决方法是使用适当的方法定义Iterable
和Iterator
类。我将这些类放在编辑器可见的位置但实际上没有使用,因此linter可以看到定义,但它们在实际输出中并不包含在膨胀中。
然后,在获取/返回序列的JSDoc方法中,我可以引用Iterable<T>
和Iterator<T>
。