我尝试安装类型定义:我的代码在**server.js**javascript文件中。
server.js
npm install @types/express
但在示例化express之后,它似乎仍然没有为app给予智能感知。但是当我这样使用express时:
app = express() ; app.listen(8000) ;
如何解决这个问题?
blmhpbnm1#
将此JsDoc注解添加到您的控制器:
/** @type {import("express").RequestHandler} */ exports.myController = (req, res) => { // biz logic. ( here you would get intelliscence on req, res objects ) const { id } = req.query; const { data } = req.body; res.status(200).json({data}); }
如果您使用的是typescript,则可以创建一个实用函数来 Package 实际的处理程序,以避免在每个控制器上编写RequestHandler类型。
// endpoint.ts import { RequestHandler } from 'express'; export const endpoint = (cb: RequestHandler) => { const handler: RequestHandler = (req, res, next) => { cb(req,res,next) } return handler }
// myController.ts import { endpoint } from 'utils/endpoint'; export const myEndpoint = endpoint((req,res) => { res.send("Hey!"); });
mbzjlibv2#
导入此代码:/**@type {import(“express”).RequestHandler} */
jgwigjjp3#
我的回答有点延迟,但我还是说:您使用的是.js文件,因此类型不存在于其中。当你通过npm安装@types/something依赖项时,这允许你使用类型,但只能在Typescript中使用。
ufj5ltwl4#
VS代码编辑器支持许多编程语言的代码自动完成,如Javascript,TypeScript,JSON,HTML,CSS,Less和Sass。至于其他编程语言,你可能需要去安装插件。要获得自动完成,请键入一个关键字,然后按Ctrl+空格键以获得代码自动完成建议,如下所示。
但是如果你仍然没有得到,那么你需要回去检查你的设置。转到文件->首选项->设置,这将打开一个窗口,您可以在其中更改一些首选项
在本节中转到文本编辑器和建议,并检查快速建议的设置,如是否启用,以及建议出现的延迟设置,您可以在其中进行更改并检查它是否工作。希望这对你有帮助。
4条答案
按热度按时间blmhpbnm1#
快速修复
将此JsDoc注解添加到您的控制器:
可选
如果您使用的是typescript,则可以创建一个实用函数来 Package 实际的处理程序,以避免在每个控制器上编写RequestHandler类型。
mbzjlibv2#
导入此代码:
/**@type {import(“express”).RequestHandler} */
jgwigjjp3#
我的回答有点延迟,但我还是说:
您使用的是.js文件,因此类型不存在于其中。当你通过npm安装@types/something依赖项时,这允许你使用类型,但只能在Typescript中使用。
ufj5ltwl4#
VS代码编辑器支持许多编程语言的代码自动完成,如Javascript,TypeScript,JSON,HTML,CSS,Less和Sass。至于其他编程语言,你可能需要去安装插件。
要获得自动完成,请键入一个关键字,然后按Ctrl+空格键以获得代码自动完成建议,如下所示。
但是如果你仍然没有得到,那么你需要回去检查你的设置。转到文件->首选项->设置,这将打开一个窗口,您可以在其中更改一些首选项
在本节中转到文本编辑器和建议,并检查快速建议的设置,如是否启用,以及建议出现的延迟设置,您可以在其中进行更改并检查它是否工作。希望这对你有帮助。