2013-10-08 29 views
6

JSDoc @type标签允许指定变量类型,例如/** @type {Number} */。不过,我也看到/** @type Number */没有花括号,它似乎同样有效。什么是JSDoc @type花括号?

Use JSDoc有一个例子,有和没有花括号,但没有讨论其差异。 Google Closure Compiler文档意味着所有声明都必须有花括号,但不指定如果不这样做会发生什么。

花括号是否重要?如果是这样,为什么?如果不是,我应该使用它们还是不使用它们?

+0

看起来像[http://usejsdoc.org/tags-type.html]不再有无支架示例。但个人而言,我认为解析器在我脑海中可以更清晰地看到无支架的语法。 – Lambart

回答

4

我最好的猜测是花括号存在于解析器中,因为某些类型规范中可能有空格。

例如。与串键和数字值的对象:根据解析器

{Object.<string, number>} 

简单类型(例如字符串)可能不需要大括号作为分析器将读取的第一个空格作为类型声明的末尾。

编辑:进一步阅读表明,大括号是必需的,所以省略它们是一个错误,但如果可以像上面那样处理一些(如果不是大多数/全部)解析器将会原谅粗糙的类型定义。

tldr:它们很重要,但在某些情况下可以不用它们。

+0

根据@ Lambart的评论,我不知道这是否仍然如此,但这是默认情况下的最佳答案! – orlade

+0

什么进一步阅读建议大括号是必需的?官方JSDoc文档的一些部分不使用它们,例如http://usejsdoc.org/tags-augments.html – Alicia

相关问题