【问题标题】:Error in angularjs typescript definition fileangularjs typescript定义文件中的错误
【发布时间】:2018-05-08 05:43:10
【问题描述】:

最近更新到 Typescript 2.6.1(从 1.8.2)并通过 npm install 安装了相关的定义文件。由于迁移,我能够解决很多错误,但我仍然遇到一个错误

@types\angularjs\index.d.ts(1839,15):错误 TS2430:Build:Interface 'IAugmentedJQuery' 错误地扩展了接口 'JQuery'。

我不得不将 JQuery 类型降级到 2.0.48,因为我在 SO 上阅读到增强 JQuery 类型的角度类型尚未更新。 VS2015的intellisense显示错误信息

“查找”属性的类型不兼容。 输入'{(选择器:字符串):IAugmentedJQuery; (元素:任意):IAugmentedJQuery; (obj: JQuery): IAugment...' 不能分配给类型 '{ (selector: string): this; (元素:任何):这个; (obj:JQuery):这个; (选择器:字符串): jQuery...'。

我仔细检查了 JQuery 接口,类型清楚地匹配。任何想法为什么我会收到错误。

【问题讨论】:

  • Angularjs 类型定义了扩展 JQuery 接口的 IAugmentedJQuery。但它似乎从 jqlite.d.ts 中获取了 JQuery 接口定义。我在 jqlite.d.ts 中编辑了 JQuery 接口,更改了inheritedData() 和find() 的声明以返回JQuery 而不是“this”,并添加了isolateScope(): T;到 IAugmentedJQuery 并且错误已经消失。我不是 100% 确信这是正确的解决方案,除非有人告诉我 angularjs 定义文件不正确/不完整。

标签: jquery angularjs typescript


【解决方案1】:

我错误地使用了已弃用的 angularjs。我应该更加关注“npm install”的输出。删除 angularjs 并安装 angular 后,我再也看不到错误了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-27
    • 2015-09-16
    • 2015-10-16
    • 2017-02-22
    • 2019-12-29
    • 2016-12-14
    • 2016-11-03
    • 2018-02-24
    相关资源
    最近更新 更多