【发布时间】: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