类型JQueryStatic上不存在属性。

11

我写了一个jQuery插件,其中使用了jQuery内部的_data方法。这导致了上述编译器错误。

(function ($) {     

var evts = $._data(document, 'events'); // internal method
....

我可以抑制这个错误吗?如果可以,应该怎么做? 针对这个问题,有哪些推荐的解决方法呢?

我知道我可以采取以下方法:

$["_data"]

或者

($ as any)._data

但我更喜欢将$._data作为一个有效的方法调用。

2个回答

5
我更希望将$._data作为有效的方法调用。
类型意识地不允许内部API调用,因为jquery团队不希望您使用这些方法。如果您想编写这样的不安全代码,可以像您已经发现的那样自由使用$ as any。
如果您想要这种不安全的访问变得更加安全,您可以通过扩展JQuery界面来添加新功能。详见:JQuery interface
interface JQuery {
  _data: any; // Replace with your types
}

2
你可以尝试以下方法:
declare var $: any;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接