我正在创建一个快速路由处理程序,并且我想扩展express.Request
接口以记录参数和查询属性应该是什么。我希望jsdoc与VsCode intellisense一起使用。
首先,我从express导入Request
和Response
。
/**
* @typedef {import('express').Request} Request
* @typedef {import('express').Response} Response
*/
然后我为params
和query
创建2种类型。
/**
* @typedef {{
* module: string
* }} params
*/
/**
* @typedef {{
* field: string
* skip: number
* limit: number
* }} query
*/
作为函数的参数,我扩展了表达式Request
并覆盖了query
和params
。
/**
* @param {Request & {params: params, query: query}} req
* @param {Response} res
*/
async function search(req, res)
问题出在这里……我只对params
有智慧,而对query
没有知觉。
当我将鼠标悬停在req
参数上时,我得到以下智能提示。
我正确使用了“扩展”功能吗?如何扩展Request
类型并为query
和params
获得智能感知?