javascript - vscode Intellisense NodeJs

标签 javascript node.js visual-studio-code

在 vscode 中,开发人员可以将鼠标悬停在我们代码中变量和对象的方法和属性上,它会向您显示有关它们的信息。不幸的是,一旦我们将代码传递给另一个文件中的模块(因为 javascript 是静态类型的),它就会丢失。我有什么办法可以显式键入传递给模块的参数?或者也许是某种源 map ?我遇到问题的示例:

app.js

var express = require('express')
var app = express()

var routes = './routes/route.js'

route.js

module.exports = function(app) {
    // Hovering over app doesn't show the intellisense like it does in app.js
}

更新

我一直在寻找答案,但没有找到答案。这是我所拥有的最接近它的工作,但由于某种原因,编辑器不想应用该类型。见下文:

route.js

import Express from 'Express'

/**
* @param {Express} app
*/        
module.exports = function(app) {
    // Hovering over app doesn't show the intellisense like it does in app.js
}

最佳答案

...since javascript is statically typed.

JavaScript 不是静态类型的。它是动态类型的。

Is there any way possible for me to explicitly type a parameter passed to a module?

是的。使用TypeScript .它提供optional static typing .

说明

在以下屏幕截图中,Intellisense 确实有效。它表明 appany 类型。这是我们可以用 JavaScript 做的最好的事情,因为 JavaScript 是动态类型的。在编译时,app 确实可以是 any 类型。动态类型意味着仅在运行时检查类型。

enter image description here

关于javascript - vscode Intellisense NodeJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41886918/

相关文章:

visual-studio-code - VS Code 中的文件路径自动完成

node.js - VueJS : Use directive in component with vue-loader

node.js - 如何延迟执行 NodeJS/Express 直到配置加载

JavaScript img.onerror 更改源 - 竞争条件

javascript - 未捕获的类型错误 : object is not a function on "(function($)"

ruby-on-rails - node.js 世界中的 ActiveRecord 等价是什么?

gulp - 尝试使用不基于根文件夹的 VSCode 运行 gulp 任务

docker - 设置远程Docker服务器时出错

带有 () 的 Javascript 语法 - 函数作用域

javascript - JS中的函数调用事件?