【发布时间】: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 的类型注释。
标签: javascript annotations ecmascript-6 jsdoc iterable