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

问题描述 投票:0回答:1

通常,当我想在 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
这样的节点内部包,情况相同。那么我如何对内部包执行此操作,就像它对本地文件的工作方式一样?

javascript node.js jsdoc
1个回答
0
投票

我是这样解决的。在

typedef
我已经删除了默认

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

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

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

}

如果它不起作用也尝试安装

@types/express

让我知道:)

© www.soinside.com 2019 - 2024. All rights reserved.