javascript - 用于传递参数的 jQuery-Intellisense

标签 javascript jquery intellisense

我怎样才能在下面的代码示例中获得 jQuery-Intellisense?

function doSomething($jQueryObject) {
    $jQueryObject.   // I want to have Intellisense here
};

var $parameter = jQuery('body');
doSomething($parameter);

问题是 Intellisense 不知道函数的参数是一个 jQuery 对象。我如何告诉函数参数类型?

我知道我可以在函数中写类似的东西

$obj = $j($jQueryObject);

创建一个新的 jQuery-Objekt,但我想知道是否有其他方法可以解决这个问题。

最佳答案

Javascript 是一种松散类型的语言,这意味着类型没有明确声明,而是在运行时内部决定。

Interllisense 无法 确定变量的类型(无论编辑器如何),因为它根本没有定义。您可以将任何您想要的内容传递给您的 doSomething() 方法。这是一种强大而灵活的编程方式。 不好的方面是它可能需要执行一些检查以避免错误/异常

如果您正在构建某种框架或 API 供其他开发人员使用,您应该考虑测试参数的类型。

要测试 jQuery 类型的变量,请执行以下操作:

var $obj = $jQueryObject instanceof jQuery
              ? $jQueryObject
              : $($jQueryObject);

注意:在变量名称前加上 $ 可以很好地指示使用该函数的开发人员预期变量的 jQuery 性质。

编辑:将 typeof === "jQuery" 替换为 instanceof jQuery

关于javascript - 用于传递参数的 jQuery-Intellisense,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8472977/

相关文章:

javascript - 如何处理javascript中不同元素上的事件以进行响应式设计

javascript - Angularjs 获取嵌套 JSON 值

javascript - 为什么我不能在 React Native 组件中使用 connect ?

javascript - jQuery 中的 .hide() 和 .show() 行为奇怪

c# - Visual Studio 不再显示 IntelliSense 描述

asp.net-core - NuGet 包 XML 文档在 .NET Core 2.2 应用程序中不可见

javascript - 警告 : setState(…): Cannot update during an existing state transition

具有相同ID的多个按钮事件的JQuery函数

jquery - 使用 jQuery 调用远程 ASMX 的问题

c# - 如何为库 (dll) 添加 Intellisense 工具提示支持