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);

Другие предложения приветствуются.

0 ответов

Другие вопросы по тегам