JSDoc @type花括号的作用是什么?

9
JSDoc中的@type标签允许指定变量类型,例如/** @type {Number} */。然而,我也看到过没有花括号的/** @type Number */,它似乎同样有效。 使用JSDoc有一个带有和不带有花括号的示例,但没有讨论区别。Google Closure Compiler文档暗示所有声明都必须有花括号,但没有指定如果没有花括号会发生什么。
花括号很重要吗?如果是,为什么?如果不是,我应该使用还是不使用?

似乎 [http://usejsdoc.org/tags-type.html] 不再有无括号示例了。但我个人认为,无括号语法更容易被我脑中的解析器读懂。 - Lambart
1个回答

9
我猜大括号是为了解析器而存在的,因为某些类型规范中可能会有空格。
例如,一个具有字符串键和数字值的对象:
{Object.<string, number>}

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

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

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


根据@Lambart的评论,我不知道现在是否仍然如此,但默认情况下这是最佳答案! - orlade
进一步阅读表明需要使用花括号?一些官方JSDoc文档片段不使用它们,例如http://usejsdoc.org/tags-augments.html - Alicia
@Alicia:来自 https://jsdoc.app/tags-param.html: 你还可以在花括号中包含参数的类型,并描述该参数。 - Tom Horwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接