在 vscode 中写入 node.js 时,可以针对第三方库(如 express)中定义的特定类型提供 IntelliSense?

Possible to give IntelliSense on specific type defined in third party library like express while writing node.js in vscode?

假设我正在使用 express 启动一个新的网络应用程序,并将 vscode 作为我的 IDE 这个 nodejs 项目

以下代码在 IntelliSense 中运行良好:

提取处理程序后,IntelliSense 消失了:

我试过了jsdoc:

/**
 * 
 * @param {express.Request} req 
 * @param {express.Response} res 
 */
function test(req, res) {
  req. // no luck
}

在这种情况下有什么方法可以支持 IntelliSense 吗?

从 VS Code 1.20 开始,这是将 require 与 JSDoc 类型一起使用时的限制(请参阅 this issue]

解决方法是使用 import:

import * as express from 'express'

/**
 * 
 * @param {express.Request} req 
 * @param {express.Response} res 
 */
function test(req, res) {
  req.
}

https://github.com/Microsoft/TypeScript/issues/14377 还跟踪允许您直接在 jsdocs 中指定模块导入。