NodeJS 如何在不导入的情况下使用NPM/内部模块的JSDoc类型提示?

s5a0g9ez  于 2023-03-12  发布在  Node.js
关注(0)|答案(1)|浏览(131)

通常,当我想引用JSDoc中的一个类但不需要导入它时,我会这样做,这里SimpleLRU是我编写的一个实际类:

/** @typedef {import("../js/SimpleLRU.js").default} SimpleLRU **/

那么我可以这样做,而不实际依赖于它:

你可以看到类中一些方法的提示,我现在要做的是,我想把一个express route函数放在一个单独的文件中,因为它太长了,但是我还想知道express传递给它的requestresponsenext参数的提示,所以我这样做了,记住,这里不需要express:

/** @typedef {import("express").default} express **/

/**
 * @param {express.Request} request
 * @param {express.Response} response
 */
function my_router(request, response, next) {

}

export default my_router;

但是如果我写request.,我不会得到任何提示,如果我用实际的import替换typedef,它会立即工作:

import express from "express"

如果我尝试像fs这样的节点内部包,也会出现同样的情况。那么我如何对内部包执行此操作,就像它对本地文件执行此操作一样?

4xrmg8kj

4xrmg8kj1#

我是这样解决的,在typedef上我去掉了default

/** @typedef {import("express")} express **/

当我在javadoc上设置参数时,我使用了括号

/**
 * @param {express["request"]} request
 * @param {express["response"]} response
 */
function my_router(request, response, next) {

}

如果不起作用,请尝试安装@types/express
让我知道:)

相关问题