作为一名 Java 开发人员,我已经习惯了能够从 IDE 的代码完成中看到所有相关信息。下面是 Eclipse IDE 的代码自动完成示例。例如,您可以看到函数 contentEquals
的返回类型是一个 bool 值,它需要一个类型为 StringBuffer
的参数。此外,如果有 JavaDoc,您甚至可以很好地解释应该如何使用该函数。
现在我在用 JavaScript 编码时正在寻找类似的东西。 我开始使用 Webstorm 是因为我想要一个具有更高级功能的 IDE,但是当您查看代码自动完成功能时,它似乎相当糟糕或者我没有正确使用它。
谁能帮我解决一下?
这是一个更具体的例子:
比方说,您想使用 navigator.geolocation 获取用户的位置。假设您知道调用 getCurrentPosition() 方法可以完成的事情。
您继续并输入您的 IDE(在我的例子中是 Webstorm):
navigator.geolocation.getCurrentPosition()
Webstorm IDE 的作用如下:
好的,它告诉我有一个强制参数和几个可选参数来调用此方法。比方说,您只想使用强制参数来调用它,它应该是一个函数。到目前为止一切顺利,但什么样的功能?这个函数应该带参数吗?它返回任何东西吗?没有任何提示。
我在网上各种例子中发现,这个回调函数其实是带一个参数的,所以我就这么写了:
function printPosition(position) {
// do something
}
但是下一个问题来了:这个参数position
是什么类型?你能用它做什么?
哇哦?它给了我各种各样的东西,但根本不是我要找的东西。所以我又选择了谷歌。
它应该是这样的:
console.log(position.coords.latitude + ' , ' + position.coords.longitude);
老实说,我从来没有猜到这只是通过查看自动完成来完成的,这非常烦人,因为我已经习惯了在用 Java 编码时能够做到这一点。
任何人都可以了解我正在经历的事情吗?我错过了什么吗?任何帮助将不胜感激!
最佳答案
简而言之,由于 JavaScript 不是 Java 那样的强类型语言,因此您无法像在 Java 中那样获得超细粒度的自动完成功能,除非开发人员包含了 WebStorm(或任何 IDE)可以解释的注释。
您可以使用 Google Closure Annotation 实现这些评论或 JSDoc3 .使用这些,您可以手动指定会给您自动完成的评论。
如果没有这些,WebStorm 实际上只是尽力猜测它需要什么,而且它通常不能猜得太好(这就是为什么你在上一个屏幕截图中得到了基本上所有内容的巨大列表)。
使用 JavaScript,您只需要依赖文档即可。
关于javascript - 使用 JavaScript 实现类似 Java 的代码自动完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45041709/