【问题标题】:Method expression is not of Function type方法表达式不是函数类型
【发布时间】:2014-12-19 20:33:53
【问题描述】:

我有以下 JavaScript 文件:

/*global $ */

function foo() {
    'use strict';
    var $tr = $('table tr'),
        $td = $tr.children('td');

    $td.html('Hello World');
}

在 PHPStorm 中,children 带有弱警告下划线。将鼠标悬停在上面会显示此消息:

方法表达式不是函数类型

此文件与 jquery.min.js(v. 1.11.0,如果重要)位于同一目录中。

我该如何解决这个问题?

请注意,上面的示例是一个足以重现问题的极简示例;这不是我的实际代码,但它会产生相同的结果。

【问题讨论】:

  • 你确定$指的是jQuery吗?你能试试var $tr = jQuery('table tr')
  • 好吧,这很奇怪。是的,我确信这就是它所指的意思,在我运行它时它肯定指的是 jQuery。但是进行您建议的更改会使警告在 PHPStorm 中消失。有什么想法吗?
  • 我应该指出,我的真实源代码是现有的、在野外部署的项目的一部分,所以我宁愿让 PHPStorm 中的警告消失,也不愿改变 @987654326 的所有用途@到jQuery。谢谢。
  • 它看起来像一些 IDE 配置问题之王......另见bloglovin.com/…
  • @JoaoCunha 变量名本身并不重要;事实证明,我只需要在我的项目中包含未压缩版本的 jQuery。

标签: javascript jquery phpstorm jslint


【解决方案1】:

这通常与phpstorm相关,所以要么下载并使用Jquery未压缩版本,要么使用带有CDN的Jquery,它会得到解决。

【讨论】:

  • 我解决了这个问题(在另一位用户的帮助下)并在 4.5 年前发布并接受了我自己的答案。您的答案没有增加该答案。而且我知道问题是特定于 PHPStorm 的;这就是为什么我在我的问题和答案中提到了 PHPStorm 并使用了 PHPStorm 标记。
【解决方案2】:

另一种解决方案是在此处添加 jQuery 作为库:

设置/首选项对话框,单击语言和框架下的 JavaScript,然后单击库。

【讨论】:

  • 其实这并没有解决当时的问题。我不确定它是否能解决最新版本的 PHPStorm 的问题。
【解决方案3】:

感谢 Arun P Johny,我得到了答案。我需要在我的项目中的某个地方有 jquery-1.11.1.js(未压缩版本)。我添加了它,PHPStorm 立即解决了所有与 jQuery 相关的警告。

【讨论】:

  • 现在,6 年后,我们有了 jQuery 3.5.1,PhpStorm 在它的缓存中拥有它 ~/.config/JetBrains/PhpStorm2020.2/javascript/extLibs/http_ajax.googleapis.com_ajax_libs_jquery_3.5.1_jquery.js 是未压缩版本,它通过 $object.fadeOut(1000); 显示这条消息 - 知道吗?
猜你喜欢
  • 2016-09-14
  • 2021-10-12
  • 2018-12-25
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
  • 1970-01-01
相关资源
最近更新 更多