【问题标题】:Can I reference a param type in JSDoc @return?我可以在 JSDoc @return 中引用参数类型吗?
【发布时间】:2017-07-25 16:31:34
【问题描述】:

我想记录一个返回类型取决于提供的参数的函数:

/**
* @param {*} x A thing
* @return {????} The thing in an array
*/
function arrayOf(x) { return [x]; }

是否可以命名或引用函数参数的实际类型,以便我可以使用它来指定返回值?

【问题讨论】:

    标签: javascript jsdoc


    【解决方案1】:

    我评论了另一个答案,即我正在寻找的归结为一个通用参数,该参数在 JSDoc 中使用@template 实现。我不知道它是否是核心 JSDoc 的一部分——我认为它是一个 Closure 扩展——但Typescript does recognize it 如果你是通过 TS 运行 JS,或者只是想在你的 IDE 中实现自动完成功能。

    改编自该链接:

    /**
     * @template T
     * @param {T} x - A generic parameter that flows through to the return type
     * @return {T[]}
     */
    function id(x) {
      return [x];
    }
    

    【讨论】:

      【解决方案2】:

      不知道是否有通用的表示方式 - 这需要在函数描述中指定,但以下可能是选项:

      详细描述,可能会创建一个东西typedef

      /**
       * Thing Type
       * @typedef {*} thing
       */
      
      /**
       * Returns a single element array encapsulating only the param value
       * @param {thing} x A thing
       * @return {thing[]} The thing in an array
       */
      function arrayOf(x) { return [x]; }
      

      简单地说,

      /**
       * Returns a single element array encapsulating only the param value
       * @param {*} x A thing
       * @return {*[]} The thing in an array
       */
      function arrayOf(x) { return [x]; }
      

      【讨论】:

      猜你喜欢
      • 2021-03-23
      • 1970-01-01
      • 2020-07-08
      • 2023-02-08
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      相关资源
      最近更新 更多