Как документировать объект в конструкторе класса?

В настоящее время я использую JSDoc, чтобы попытаться задокументировать следующий код...

class Test {
  /**
   * @param {Object} raw The raw data.
   */
  constructor(raw) {
    /**
     * Used for things and stuff. It can be useful when referencing Test.myObject.myValue.
     * @type {Object}
     */
    this.myObject = {
      /**
       * This is my string... It does things. Very useful.
       * @type {String}
       */
      myValue: raw.thisIsMyValue
    }
  }
}

Но я не совсем уверен, как это сделать. Приведенный выше пример работает в VSCode, но не при создании документации. Я пробовал typedef, но это не сработало, поскольку оно сделало его глобальным typedef вместо того, чтобы быть частью прототипа класса Test. Как мне это сделать?

Я знаю, как определить «анонимный» объект для функции с помощью @param, но понятия не имею, как это сделать для прототипа класса. Я гуглил уже более полутора часов, но безуспешно.


person FireController1847    schedule 26.11.2018    source источник
comment
Вы смотрели здесь? usejsdoc.org/howto-es2015-classes.html   -  person    schedule 27.11.2018
comment
Я сделал, и, похоже, ничего не связано с этой конкретной ситуацией.   -  person FireController1847    schedule 27.11.2018


Ответы (1)


я понял

  1. Мой метод отладки не помогал, так как тема, которую я использовал для своего генератора документации, скрывала свойства.
  2. При создании typedef вы берете тип прямо перед объектом, а затем он перечисляет его как свойства!

Пример

class Test {
  /**
   * @param {Object} raw The raw data.
   */
  constructor(raw) {
    /**
     * Used for things and stuff. It can be useful when referencing Test.myObject.myValue.
     * @typedef MyObject
     * @property {String} myValue This is my string... It does things. Very useful.
     */
    this.myObject = {
      myValue: raw.thisIsMyValue
    }
  }
}
person FireController1847    schedule 26.11.2018