jsdo c - значение свойства по умолчанию внутри объекта param - PullRequest
0 голосов
/ 26 мая 2020

Для следующего объекта jsdo c @param, как мне назначить значение по умолчанию для name?

/** 
    @param inbound {{
        email: string,
        name: string,
        req: Req
    }}
*/

Я пробовал

/** 
    @param inbound {{
        email: string,
        name: [string=""],
        req: Req
    }}
*/

, но это просто превращает его в массив [string, ""].

Я также предпочитаю этот стиль @param, а не @typedef, поскольку vscode показывает мне свойства объекта, используя @param, но не показывает его для @typedef

1 Ответ

1 голос
/ 26 мая 2020

Необязательные параметры задокументированы в документе Типы в системе типов замыкания в компиляторе замыкания вики.

Короче говоря, значение по умолчанию должно быть предоставлено с использованием JS.

/**
 * Some class, initialized with an optional value.
 * @param {!Object=} opt_value Some value (optional).
 * @constructor
 */
function MyClass(opt_value) {
  /**
   * Some value.
   * @private {!Object|undefined}
   */
  this.myValue_ = opt_value || 'foo';
}

Однако ваш вопрос конкретно относится к свойству по умолчанию в документе. Насколько я знаю, «глубокий дефолт» - это не вещь в vanilla JS, во всяком случае, не в сигнатуре метода, поэтому маловероятно, что вы найдете чистый способ JSDocs для выполнения sh этого.

Просто напишите хорошее описание и воплотите в JS. Вы можете создать очень простой класс с этим свойством по умолчанию, возвращаемым получателем / установщиком.

...