2014-09-10 89 views
7

有一個JavaScript類,使用對象類型的一個參數與定義的屬性集和關閉編譯器是幸福的,當我將其標註爲喜歡:我如何註釋匿名對象有可選屬性在JSDoc

@constructor 
@param {{ subview:BaseView, el:(jQuery|Element), title:String }} options 
var MyView = function(options){ } 

我想使title鍵可選的title值傳遞給我的課的某些情況下,實施後備行爲時,該鍵不存在,所以我我的註釋類:

@constructor 
@param {{ subview:BaseView, el:(jQuery|Element), title:String= }} options 
var MyView = function(options){ } 

現在關閉編譯爲com plaining:

WARNING - Bad type annotation. expected closing } 

我檢查Annotating JavaScript for the Closure Compiler,但我看描述這種使用情況下,不單行。

+2

我認爲'='修飾符只對函數參數有效,不適用於記錄類型屬性。 – Bergi 2014-09-10 19:17:52

回答

13

@param {{ subview:BaseView, el:(jQuery|Element), title:(string|undefined) }} options

+0

這很明顯。它像一個魅力。謝謝 – 2014-09-11 10:50:24

+1

而不是'| undefined'不應該是'title?:string'? – Noitidart 2017-03-18 20:26:24

+0

不適用於Closure Compiler,no。 – MatrixFrog 2017-04-12 21:44:43

相關問題