同事報案,下載Angular TypeScript定義檔後,jQuery.d.ts出現大量錯誤訊息,無法編譯:

看了錯誤所在,出現U|JQueryGenericPromise<U>的新奇寫法,先前在Kendo UI討論區發問曾聽Telerik RD提過,這似乎是Union Type新語法。TypeScript檔是1/22新出的,推測有加入新語法導致錯誤的可能。由TypeScript官網找到VS2013套件下載連結,證實TypeScript 1.4版已於1/17釋出。

安裝1.4版後重開Visual Studio 2013,程式詢問是否要升級csproj所使用的TypeScript版本?(不升級定義檔Build不過呀… orz)

定義檔的所有錯誤在升級VS2013 TypeScript套件後消失無蹤。所以故事是:TypeScript於1/17升級,1/22釋出的jQuery定義檔已改用新版語法,手腳超快呀!讓人有「音浪太強,不晃會被撞到地上」的感覺~

至於TypeScript 1.4的新功能,可以看MSDN Blog的這篇介紹,Union Types克服「有兩種以上可能型別的變數只能改用any不做控管」的缺點,是一大革新!另外,Type Alias讓複式型別引用時更簡潔,也很好用。

因為定義檔已改用新版,如果不打算更新TypeScript編譯器,記得要保留舊版定義檔。不過,TypeScript 1.4的Union Types跟Type Alias是很好用的重大革新,值得儘快更新!

音浪太強,不晃會被撞到地上~ 音浪太強,不晃會被撞到地上~


Comments

Be the first to post a comment

Post a comment