2013-03-05 2 views
0

Этот кодJSDoc 3 имен Проблема

/** 
* * My namespace 
* 
* @namespace 
* 
* @type {Object} 
*/ 
myNamespace = { 

}; 

/** 
* My constructor 
* 
* @constructor 
*/ 
myNamespace.MyConstructor = function() { 

}; 

/** 
* My static class function 
* 
*/ 
myNamespace.MyConstructor.myStaticFunction = function() { 

}; 

компилирует и дает мне хороший HTML-файл. Однако синтаксис myConstructor будет отображаться как new MyConstrutor() вместо справа new myNamespace.MyConstructor().

Если я изменить комментарий MyConstructor к

/** 
* My constructor 
* 
* @constructor 
* @memberOf {myNamespace} 
*/ 
myNamespace.MyConstructor = function() { 

}; 

тогда я получаю ожидаемый результат new myNamespace.MyConstructor(). Однако теперь myNamespace.MyConstructor.myStaticFunction даже не отображается в документации и независимо от того, какая перестановка тегов я пробовал в любом из 3 комментариев, он не будет генерировать то, что я ожидаю.

Я попытался дать myStaticFunction быть членом либо myNamespace или MyConstructor или myNamespace.MyConstructor - но он просто не будет отображаться в документации в любом месте.

Я пробовал компиляцию со старым jsdoc-toolkit 2.4 и не имел проблем и даже не должен использовать какой-либо нотации memberOf. Сейчас очень поздно, поэтому я надеюсь, что свежая пара глаз поможет мне.

ответ

1

Я думаю, что это должно быть

* @memberOf myNamespace 

(без фигурных скобок)

С JSDoc 3.3.0 @memberOf {myNamespace} выдает ошибку.