javascript - JSDOC:覆盖 typedef 对象属性

标签 javascript jsdoc

我正在尝试记录请求的 param 对象上的查询字符串类型。我有一个请求 @param 的 Request 类型,但我希望能够覆盖其继承的 param 对象,因为每个请求函数可能有一组不同的查询字符串。

/**
 * @typedef {Object} Request
 * @property {Object} params - Object that contains parameters passed to a route. (Query strings).
 * @property {string} hostname - Hostname from the HTTP-request.
 */

 class ProfileController extends Controller {
    /**
     * Fetch a profile
     * @param {Request} req - Request object
     * @param {string} req.params.id - Node ID <-- I WANT TO DO THIS, THIS DOESNT WORK
     * @param {Object} res - Response
     */
   get = (req, res) => {
    const { id, hostname } = req.params;
    // req.params.id doesn't get intellisense
   };
 }

最佳答案

你可以这样做:

/**
 * @typedef {Object} Request
 * @property {Object} params - Object that contains parameters passed to a route. (Query strings).
 * @property {string} hostname - Hostname from the HTTP-request.
 */

/**
 * @typedef {Object} MyRequest
 * @property {Object} params - Object that contains parameters passed to a route. (Query strings).
 * @property {string} params.id - Node ID
 */

class ProfileController extends Controller {
  /**
   * Fetch a profile
   * @param {Request & MyRequest} req - Request object
   * @param {Object} res - Response
   */
  get (req, res) {
    const { id, otherParam } = req.params;
  }
}

关于javascript - JSDOC:覆盖 typedef 对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53554614/

相关文章:

javascript - 从 Git 提交 api 获取日期和日期

javascript - jquery - ajax 请求不工作

javascript - XMLHttpRequest 无法加载,请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - JSDoc - 记录可能返回任何类型的方法的正确方法?

java - 你如何记录匿名函数?

javascript - 在eBay上列出产品时无法显示图像

javascript - 单击工具提示中的链接时,Tooltipster 插件不会触发 jquery 函数

documentation - 在 reStructuredText 中插入相对链接

javascript - JSDoc @type 花括号有什么用?

javascript - JSDoc 注释 block 中是否允许使用制表符?