[2021-03-02 更新] 原答案是 100% JSDOC + 0% TypeScript,但我找到了一个 20% JSDOC + 80% TypeScript(纯定义)的解决方案。在 typescript github 中提到了这种方法。请参见文章的最后一段。
我结合了其他答案并修改了一些代码,
它可以包含在 express.Request
上定义的所有方法/属性和自定义请求体。
它不仅可以在 request.body
中使用,还支持在 req.query
中使用。
这是因为 express.Request
支持泛型,所以我们可以在 JSDoc 中使用它。
首先,请记得使用 npm install --save-dev @types/express
安装 @types/express
。
其次,请按照以下代码进行设置。
exports.show = function(req, res, next) {
};
注意:我在 vscode 中使用它。
我把答案留在这里,希望这能帮助其他也有这个问题的人。
其他在express.Request
上定义的方法/属性,例如req.headers
req.body
提示
req.query
提示
20% JSDOC + 80% TypeScript
以下示例不需要tsconfig.json
或安装额外的tsc
。
但是,您无法使用jsdoc生成文档。
使用导入+导出定义
如果要借助导入某些模块扩展接口,则需要在定义中使用导出。 然后在JSDOC中导入它即可。
不使用导入和导出定义
如果您不想在JSDOC中导入自定义定义,可以直接定义接口而不导入或导出。然后,您可以直接在JSDOC中使用它。
扩展express模块
有另一种构建自定义接口的方法,只需使用declare module来扩展接口。您甚至可以定义自定义方法。
@return
这行吗?Express路由通常不返回任何东西。 - Matt Browne