什么是JSDoc @type花括号?

时间:2013-10-08 01:01:37

标签: javascript syntax jsdoc curly-braces

JSDoc @type标记允许指定变量类型,例如/** @type {Number} */。但是我也看到/** @type Number */没有大括号,看起来同样有效。

Use JSDoc有一个带有和不带花括号的例子,但没有讨论差异。 Google Closure Compiler文档暗示所有声明都必须有花括号,但如果不是,则不指定会发生什么。

花括号重要吗?如果是这样,为什么?如果没有,我应该使用它们吗?

1 个答案:

答案 0 :(得分:4)

我最好的猜测是解析器有花括号,因为某些类型规格可以包含空格。

例如。具有字符串键和数字值的对象:

{Object.<string, number>}

取决于解析器,简单类型(例如字符串)可能不需要花括号,因为解析器将读取第一个空格作为类型声明的结尾。

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

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