JSDoc @type
標籤允許指定變量類型,例如/** @type {Number} */
。不過,我也看到/** @type Number */
沒有花括號,它似乎同樣有效。什麼是JSDoc @type花括號?
Use JSDoc有一個例子,有和沒有花括號,但沒有討論其差異。 Google Closure Compiler文檔意味着所有聲明都必須有花括號,但不指定如果不這樣做會發生什麼。
花括號是否重要?如果是這樣,爲什麼?如果不是,我應該使用它們還是不使用它們?
JSDoc @type
標籤允許指定變量類型,例如/** @type {Number} */
。不過,我也看到/** @type Number */
沒有花括號,它似乎同樣有效。什麼是JSDoc @type花括號?
Use JSDoc有一個例子,有和沒有花括號,但沒有討論其差異。 Google Closure Compiler文檔意味着所有聲明都必須有花括號,但不指定如果不這樣做會發生什麼。
花括號是否重要?如果是這樣,爲什麼?如果不是,我應該使用它們還是不使用它們?
我最好的猜測是花括號存在於解析器中,因爲某些類型規範中可能有空格。
例如。與串鍵和數字值的對象:根據解析器
{Object.<string, number>}
簡單類型(例如字符串)可能不需要大括號作爲分析器將讀取的第一個空格作爲類型聲明的末尾。
編輯:進一步閱讀表明,大括號是必需的,所以省略它們是一個錯誤,但如果可以像上面那樣處理一些(如果不是大多數/全部)解析器將會原諒粗糙的類型定義。
tldr:它們很重要,但在某些情況下可以不用它們。
看起來像[http://usejsdoc.org/tags-type.html]不再有無支架示例。但個人而言,我認爲解析器在我腦海中可以更清晰地看到無支架的語法。 – Lambart