2014-09-10 10 views
7

Mam klasy JavaScript, który pobiera jeden argument typu obiektu z określonego zestawu właściwości i zamknięcie Compiler jest szczęśliwy, kiedy opisywanie to lubią:Jak opisywanie anonimowy obiekt z opcjonalnej właściwości w JSDoc

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

I chciałby, aby title klucz opcjonalne i przekazać title wartość niektórych przypadkach mojej klasy i wdrożyć zachowanie awaryjnej, gdy ten klucz nie istnieje, więc z adnotacją moją klasę:

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

i teraz Closure Compiler jest com plaining:

WARNING - Bad type annotation. expected closing } 

Sprawdziłem Annotating JavaScript for the Closure Compiler, ale nie widzę jeden wiersz opisujący taki przypadek użycia.

+2

myślę, że '=' modyfikator jest ważna tylko dla parametrów funkcji, a nie do właściwości typu rekordu. – Bergi

Odpowiedz

13

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

+0

To takie oczywiste. To działa jak urok. Dzięki –

+1

Zamiast '| undefined' nie powinno to być' title?: String'? – Noitidart

+0

Nie dla kompilatora zamknięcia, nie. – MatrixFrog

Powiązane problemy