EsDoc не любит документировать простые объекты на уровне членов - обходной путь?
Учитывая следующую конструкцию:
BigBoss.specify({
/**
* EsDoc, will not show me
*/
val:'val',
/**
* EsDoc, will not show me
*/
fn:function(){
return 'fn';
}
// lots more members I want to documenent in EsDoc
});
И это также не удается:
const bigspec = {
/**
* EsDoc, will not show me
*/
val:'val',
/**
* EsDoc, will not show me
*/
fn:function(){
return 'fn';
}
// lots more members I want to documenent in EsDoc
};
Я собираюсь обойти это с классом уровня модуля:
class WantsToBePojoSomeday { // assume will never inherit
// assume no constructor params
/**
* EsDoc now documents me
*/
val='val';
/**
* EsDoc now documents me
*/
fn(){
return '';
}
}
const AsPojo=function(klass){
const inst=new klass;
const o={};
for (var i in inst) {
o[i]=inst[i];
}
return o;
}
Звонок теперь становится:
BigBoss.specify(AsPojo(WantsToBePojoSomeday));
То, что я хотел бы, это "безопасно" расширить Function.prototype, чтобы вызов стал:
BigBoss.specify(WantsToBePojoSomeday._Pojo);
Другие предложения приветствуются.