我如何实现以下代码示例中的jQuery-Intellisense?
function doSomething($jQueryObject) {
$jQueryObject. // I want to have Intellisense here
};
var $parameter = jQuery('body');
doSomething($parameter);
问题是Intellisense不知道函数的参数是jQuery-Object。我怎么能告诉函数参数类型?
我知道我可以写一些像
这样的函数$obj = $j($jQueryObject);
创建一个新的jQuery-Objekt,但我想知道是否有另一种解决方法。
答案 0 :(得分:4)
Javascript是一种松散类型的语言,这意味着该类型未明确声明,而是在运行时内部决定。
Interllisense 无法确定变量的类型(无论编辑器如何),因为它根本没有定义。您可以将任意内容传递给doSomething()
方法。这是一种强大而灵活的编程方式。 坏方面可能需要实施一些检查以避免错误/异常
如果要为其他开发人员构建某种框架或API,则应考虑测试参数的类型。
要测试jQuery类型变量,请执行以下操作:
var $obj = $jQueryObject instanceof jQuery
? $jQueryObject
: $($jQueryObject);
注意:使用$
为变量名添加前缀是使用该函数的开发人员预期变量的jQuery性质的一个很好的指标。
修改:将typeof === "jQuery"
替换为instanceof jQuery