【问题标题】:PhpStorm warnings with jQuery parameters带有 jQ​​uery 参数的 PhpStorm 警告
【发布时间】:2018-06-01 18:56:32
【问题描述】:

我使用 PhpStorm,当我使用 JSDoc 将参数定义为 jQuery 类型时,它会给我警告。

我尝试将 jQuery 配置为一个库,但它似乎不起作用。

这是我的代码:

/**
 * @param {jQuery} $button
 */
function setActive($button)
{
    // The code is working fine, but PhpStorm is giving the warning 
    // "Unresolved function or method addClass()" here.
    $button.addClass("active");

    // If I try to do this, no warning is displayed.
    $("#test").addClass("test");
}

编辑:

一些方法出现在智能感知中(我不知道为什么),但不幸的是addClass 不是其中之一。

【问题讨论】:

  • 这很奇怪。它对我来说将参数识别为 jQuery。
  • @Phiter 你的 PHPStorm 有什么特殊配置吗?这似乎是正确的,但我就是无法摆脱这个警告。
  • 没什么特别的。如果你使用$('body').,它会用jQuery函数自动完成吗?
  • 看一看:imgur.com/a/d1Cxo
  • 是的,它适用于 $() 中的任何内容。它不仅适用于参数。

标签: jquery phpstorm webstorm jsdoc


【解决方案1】:

尝试添加 JQuery 类型(通过 Settings | Languages & Frameworks | JavaScript | LibrariesTypeScript Community Stubs 或在项目目录中运行 npm i @types/jquery) - 这应该解决问题:

【讨论】:

  • 哇,它有效,但我必须在 JQuery 中输入一个大写的 J。这是要走的路吗?
【解决方案2】:

原来 jQuery 的 Typescript 使用大写 J,所以 JQuery 而不是 jQuery

像这样更改 jsdoc 可以解决此问题。

/**
 * @param {JQuery} $button
 */

否则小写的jQuery 可以通过在项目的某处创建一个非常简单的打字稿文件来启用。

例如,您的文件可以命名为 jquery.d.ts 并具有以下内容。

/**
 * Must have the @types/jquery typescript installed
 * either via PHPStorm -> Javascript -> Libraries
 * or `npm i @types/jquery`
 */
interface jQuery<TElement = HTMLElement> extends JQuery {}

【讨论】:

    猜你喜欢
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 2014-07-10
    • 2012-03-28
    相关资源
    最近更新 更多