Как документировать объект в конструкторе класса? - PullRequest
0 голосов
/ 27 ноября 2018

Я сейчас использую 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, но я не знаю, как это сделать для прототипа класса.Я уже полтора часа гуглю без удачи.

1 Ответ

0 голосов
/ 27 ноября 2018

Я понял это

  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
    }
  }
}
...