javascript - 使用 JavaScript 实现类似 Java 的代码自动完成?

标签 javascript autocomplete webstorm

作为一名 Java 开发人员,我已经习惯了能够从 IDE 的代码完成中看到所有相关信息。下面是 Eclipse IDE 的代码自动完成示例。例如,您可以看到函数 contentEquals 的返回类型是一个 bool 值,它需要一个类型为 StringBuffer 的参数。此外,如果有 JavaDoc,您甚至可以很好地解释应该如何使用该函数。

enter image description here

现在我在用 JavaScript 编码时正在寻找类似的东西。 我开始使用 Webstorm 是因为我想要一个具有更高级功能的 IDE,但是当您查看代码自动完成功能时,它似乎相当糟糕或者我没有正确使用它。

谁能帮我解决一下?

这是一个更具体的例子:

比方说,您想使用 navigator.geolocation 获取用户的位置。假设您知道调用 getCurrentPosition() 方法可以完成的事情。

您继续并输入您的 IDE(在我的例子中是 Webstorm):

navigator.geolocation.getCurrentPosition()

Webstorm IDE 的作用如下:

enter image description here

好的,它告诉我有一个强制参数和几个可选参数来调用此方法。比方说,您只想使用强制参数来调用它,它应该是一个函数。到目前为止一切顺利,但什么样的功能?这个函数应该带参数吗?它返回任何东西吗?没有任何提示。

我在网上各种例子中发现,这个回调函数其实是带一个参数的,所以我就这么写了:

function printPosition(position) {
    // do something
}

但是下一个问题来了:这个参数position是什么类型?你能用它做什么?

所以我在上面尝试代码自动完成: enter image description here

哇哦?它给了我各种各样的东西,但根本不是我要找的东西。所以我又选择了谷歌。

它应该是这样的:

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/

相关文章:

javascript - AngularJS 工厂 : Best way to call parent in literal?

javascript - 使用 JavaScript 在截止日期前一天触发电子邮件

javascript - 如何在过滤器中添加/删除类 jQuery?

javascript - 自动完成功能不随表单提交发送数据

css - 数据表中的 YUI 自动完成隐藏在单元格/CSS 问题中

javascript - 在线评论 webstorm 或 intellij ultimate 上的格式错误

javascript - Angular.js 中的自定义日期过滤器可更改日期格式

java Api目录? komodoedit java 自动完成功能

twitter-bootstrap - Webstorm 代码完成不显示 Bootstrap 类

angularjs - WebStorm 中的 JSHint 不知道 Protractor 命令 "browser"