Javascript JSDOC:重写typedef对象属性

Javascript JSDOC:重写typedef对象属性,javascript,jsdoc,Javascript,Jsdoc,我试图记录请求的param对象上的查询字符串类型。对于Request@param,我有一个Request类型,但我希望能够覆盖其继承的param对象,因为每个请求函数可能都有一组不同的查询字符串 /** * @typedef {Object} Request * @property {Object} params - Object that contains parameters passed to a route. (Query strings). * @property {string

我试图记录请求的
param
对象上的查询字符串类型。对于Request@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}请求
*@property{Object}params-包含传递给路由的参数的对象。(查询字符串)。
*@property{string}hostname—HTTP请求中的主机名。
*/
类ProfileController扩展控制器{
/**
*获取个人资料
*@param{Request}req-请求对象
*@param{string}req.params.id-节点id{
const{id,hostname}=req.params;
//req.params.id未获取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;
  }
}

谢谢,但是我没有在
req.params.id
上获得intellisense,有可能以某种方式获得它吗?