Функция JSDoc, возвращающая «расширенный» тип входного параметра - PullRequest
0 голосов
/ 29 октября 2019

Я документирую функцию, которая возвращает функцию, но у меня возникли некоторые затруднения с выяснением, как выразить в jsdoc тип возврата, который является «дополнением» типа входного параметра.

Я пробую несколько решений, с @augments и @template. Наконец, я закончил с этим решением (надуманный образец):

/**
 * @template T
 * @typedef ModelWithProp
 * @type {T & {prop: Object}}
 */

/**
 * @template TModel
 * @param {Object} x
 * @returns {function (TModel): ModelWithProp<TModel>}
 */
export const fn = x => y => {
  if (x?.a) {
    y.prop = x.a
  } else if (x?.b) {
    y.prop = { subprop: x.b }
  }
  return y
}

Мне не понравилось это решение (я не знаю, действительно ли оно работает), и я хотел бы найти более каноническое - более простое- удобочитаемое решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...