ES6 可迭代的 JSDoc 类型名称
Posted
技术标签:
【中文标题】ES6 可迭代的 JSDoc 类型名称【英文标题】:JSDoc type name for ES6 iterables 【发布时间】:2015-12-24 08:06:43 【问题描述】:我有一个 javascript 方法,它接受一个可迭代的,即 the es6 iterable protocol 之后的任何对象。我想在其 JSDoc 中对此进行注释。如何引用“可迭代”类型?
/**
* @param __WHAT_GOES_HERE__? iterable
*/
function consume(iterable) ...
我可以在 JSDoc 中写出整个协议,但这有点……难以置信的笨拙:
* @param
*
* Symbol.iterator: function():
* next: function() :
* value: T|undefined,
* done: boolean
*
*
*
* iterable
另外,工具似乎无法理解 Symbol.iterator
的含义。
【问题讨论】:
我通常只输入Iterable.<number>
或任何类型,但我们实际上并没有从 JSDocs 生成文档。
@loganfsmyth 我使用 webstorm,它会根据注释进行一些基本的类型警告。当我只是对类型撒谎时,它会抱怨。
@Strilanc:你使用的是什么类型的系统?你可以在那里声明接口吗?
@Bergi 这个问题是指 JSDoc,但我的具体情况是“WebStorm 内置的任何东西”。可能是现有标准的一些临时组合,包括 JSDoc 和 Closure 的类型注释。
【参考方案1】:
我当前的解决方案是使用适当的方法定义Iterable
和Iterator
类。我将类放在编辑器可见但未实际使用的位置,因此 linter 可以看到定义,但它们不会作为膨胀包含在实际输出中。
那么,在接受/返回序列的方法的JSDoc中,我可以参考Iterable<T>
和Iterator<T>
。
【讨论】:
以上是关于ES6 可迭代的 JSDoc 类型名称的主要内容,如果未能解决你的问题,请参考以下文章