JQueryStatic 类型上不存在属性

Posted

技术标签:

【中文标题】JQueryStatic 类型上不存在属性【英文标题】:Property does not exist on type JQueryStatic 【发布时间】:2017-07-22 11:45:47 【问题描述】:

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

(function ($)      

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

我可以抑制这个错误吗?如何抑制? 解决此问题的推荐方法是什么?

我知道我可以做到以下几点:

$["_data"]

($ as any)._data

但我更愿意将$._data 设为有效的方法调用。

【问题讨论】:

【参考方案1】:

但我更愿意将 $._data 设为有效的方法调用。

这些类型故意不允许内部 API 调用,因为 jquery 团队不希望您使用这些方法。如果您想编写这样的不安全代码,您可以随意使用$ as any,正如您所知道的那样。

如果您希望安全地完成此类不安全的访问,您可以扩展JQuery interface with new functionality

interface JQuery 
  _data: any; // Replace with your types

【讨论】:

【参考方案2】:

你可以试试:

declare var $: any;

【讨论】:

以上是关于JQueryStatic 类型上不存在属性的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript:类型“”上不存在属性

错误 TS2339:类型“”上不存在属性“包含”

类型“”上不存在属性“forEach”

类型“”上不存在 Typescript 错误属性“成员”

类型“T”上不存在属性 - 一般问题

“EventTarget”类型上不存在属性“值”