【问题标题】:What are JSDoc @type curly braces for?JSDoc @type 花括号有什么用?
【发布时间】:2013-10-14 18:23:25
【问题描述】:

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

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

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

【问题讨论】:

  • 看起来 [usejsdoc.org/tags-type.html] 不再有无括号示例。但就我个人而言,我认为无括号语法对我脑海中的解析器更具可读性。

标签: javascript syntax jsdoc curly-braces


【解决方案1】:

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

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

{Object.<string, number>}

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

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

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

【讨论】:

  • 根据@Lambat 的评论,不知道是不是还是这样,但默认是最好的答案!
  • 哪些进一步阅读表明需要大括号?一些官方 JSDoc 文档不使用它们,例如usejsdoc.org/tags-augments.html
  • @Alicia:来自jsdoc.app/tags-param.html您还可以包括参数的类型,括在大括号中,以及参数的描述。
猜你喜欢
  • 1970-01-01
  • 2019-05-15
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
  • 2014-12-05
  • 2012-04-08
  • 1970-01-01
相关资源
最近更新 更多