2013-10-08 32 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

相關問題