6

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

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

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

4

1 回答 1

5

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

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

{Object.<string, number>}

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

编辑:进一步阅读表明大括号是必需的,因此省略它们是一个错误,但是如果可以按上述方式处理某些(如果不是大多数/全部)解析器,它们将原谅草率的类型定义。

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

于 2013-10-08T13:46:23.350 回答