jQuery TypeScript定義檔2.2.3與KendoUI定義檔不相容

使用NuGet更新全部套件後,jQuery定義檔出現TypeScript編譯錯誤:

Error    545    Interface 'JQueryPromise<T>' incorrectly extends interface 'JQueryGenericPromise<T>'.
  Types of property 'then' are incompatible.
    Type '(doneCallbacks: any, failCallbacks: any, progressCallbacks?: any) => JQueryPromise<T>' is not assignable to type '{ <U>(doneFilter: (value?: T, ...values: any[]) => U | JQueryPromise<U>, failFilter?: (...reasons...'.
      Type 'JQueryPromise<T>' is not assignable to type 'JQueryPromise<void>'.
        Type 'T' is not assignable to type 'void'. 

檢查發現jQuery TypeScript定義檔被更新到2.2.3版,是這幾天(3/24)才推出的,莫非如上次事件與TypeScript新版有關?檢查TypeScript 1.4 for VS2013在1/16之後並無更新,先排除TypeScript套件未更新因素。

懷疑新版定義檔有Bug,但爬文未發現有人反應類似狀況(2.2.3截至目前下載量不到800次,可能發現問題的人還不多)。

使用Package Manager Console下指令Install-Package jquery.TypeScript.DefinitelyTyped -Version 2.2.2強制裝回2.2.2版(套件名稱及版號不用強記,按Tab會有提示),問題消失!順手將問題回報到Github,先以降版做為暫時解決方案。

2015-04-01 更新:進一步調查,問題導因於KendoUI定義檔自行補充部分jQuery宣告與jQuery 2.2.3版定義衝突(沒用KendoUI定義檔的人不會遇到),暫時解法是將問題宣告註解掉,已將問題反應給Telerik,就等待Telerik修正囉!
歡迎推文分享:
Published 28 March 2015 08:51 AM 由 Jeffrey
Filed under:
Views: 2,961



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<March 2015>
SunMonTueWedThuFriSat
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication