Javascript IntelliJ 中的库加载顺序导致函数签名不正确
Javascript library load order in IntelliJ causing incorrect function signatures
我正在开发一个 javascript Web 项目,该项目不包含额外的库或框架,但 jQuery。
我创建了一个项目 "Static Web"。
在 Settings > Languages & Frameworks > JavaScript > Libraries
中,我添加并启用了 jquery,我可以确认它有效。
"HTML" 也已启用。
但是,在我的代码中,在 $('...').insertBefore(...)
上,它使用 "HTML" 模块 "DOMCore.js" 中的定义,而不是 jQuery.js。因此,它给出了关于错误函数参数的错误警告。
有没有办法告诉 IntelliJ 在 HTML 库之前考虑 jQuery 库?如果不是,为什么 IntelliJ 在声明时不记住 jQuery 对象的类型?
为了清楚起见,这不仅仅是 .insertBefore()
。它也发生在其他功能上,例如 .find()
(使用 EcmaScript6.js>Array.prototype.find
)
IntelliJ 的 Elena Pogorelova 帮助我解决了这个问题。答案是使用 jquery Typescript 社区存根代替类型解析 (https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000555830/comments/115000461584)。虽然目前这会带来其他问题,但他们正在努力解决。
我正在开发一个 javascript Web 项目,该项目不包含额外的库或框架,但 jQuery。
我创建了一个项目 "Static Web"。
在 Settings > Languages & Frameworks > JavaScript > Libraries
中,我添加并启用了 jquery,我可以确认它有效。
"HTML" 也已启用。
但是,在我的代码中,在 $('...').insertBefore(...)
上,它使用 "HTML" 模块 "DOMCore.js" 中的定义,而不是 jQuery.js。因此,它给出了关于错误函数参数的错误警告。
有没有办法告诉 IntelliJ 在 HTML 库之前考虑 jQuery 库?如果不是,为什么 IntelliJ 在声明时不记住 jQuery 对象的类型?
为了清楚起见,这不仅仅是 .insertBefore()
。它也发生在其他功能上,例如 .find()
(使用 EcmaScript6.js>Array.prototype.find
)
Elena Pogorelova 帮助我解决了这个问题。答案是使用 jquery Typescript 社区存根代替类型解析 (https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000555830/comments/115000461584)。虽然目前这会带来其他问题,但他们正在努力解决。