2014-09-10 17 views
7

ho una classe JavaScript che prende un argomento di tipo Object con serie definita di proprietà e la chiusura Compiler è felice quando ho annotare piace:Come annotare oggetto anonimo con proprietà facoltativa in JSDoc

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

I vorrebbe fare title chiave facoltativa e passare title valore ad alcune istanze della mia classe e implementare il comportamento di ripiego quando questa chiave non è presente, quindi ho annotato la mia classe con:

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

e ora di chiusura del compilatore è com plaining:

WARNING - Bad type annotation. expected closing } 

Ho controllato Annotating JavaScript for the Closure Compiler, ma non vedo sola riga che descrive come caso d'uso.

+2

penso che il modificatore = '' è valida solo per i parametri di funzione, non per le proprietà tipo di record. – Bergi

risposta

13

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

+0

È così ovvio. Esso funziona magicamente. Grazie –

+1

Invece di '| undefined' non dovrebbe essere' title?: String'? – Noitidart

+0

Non per il compilatore di chiusura, n. – MatrixFrog