通常,当我想在 JSDoc 中引用一个类但不需要导入它时,我会这样做,这里
SimpleLRU
是我写的一个实际类:
/** @typedef {import("../js/SimpleLRU.js").default} SimpleLRU **/
然后我可以做到这一点,而不需要真正依赖它:
你可以看到类的一些方法的提示。我现在正在做的是,由于它的长度,我想在一个单独的文件中使用 am express route 函数。但我仍然想要关于 express 将传递给它的
request
、response
和next
参数的提示。所以我这样做了,记住,我不需要快递:
/** @typedef {import("express").default} express **/
/**
* @param {express.Request} request
* @param {express.Response} response
*/
function my_router(request, response, next) {
}
export default my_router;
但是如果我写
request.
我没有得到任何提示。如果我用实际导入替换 typedef,它会立即起作用:
import express from "express"
如果我尝试像
fs
这样的节点内部包,情况相同。那么我如何对内部包执行此操作,就像它对本地文件的工作方式一样?
我是这样解决的。在
typedef
我已经删除了默认
/** @typedef {import("express")} express **/
当我在 javadocs 上设置参数时,我使用了括号
/**
* @param {express["request"]} request
* @param {express["response"]} response
*/
function my_router(request, response, next) {
}
如果它不起作用也尝试安装
@types/express
让我知道:)