在 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 确实有效。它表明 app
是 any
类型。这是我们可以用 JavaScript 做的最好的事情,因为 JavaScript 是动态类型的。在编译时,app
确实可以是 any
类型。动态类型意味着仅在运行时检查类型。
关于javascript - vscode Intellisense NodeJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41886918/