2015-04-23 46 views
0

我遇到了類型定義(td)版本問題。有人可以向我解釋爲什麼當前的指導原則爲所有版本(但最新版本)的類型定義強制使用版本定義,爲什麼他們沒有說明指定他們所依賴的類型定義的版本?手稿類型定義版本

我會解釋我的困惑:我現在面臨的問題是,browserify td不適用於最新的node td(但它適用於v0.11.0)。鑑於目前的指導方針,如何編寫一個引用另一個td的人確定引用的td的新更新不會使他們制動他們?我現在看不到路。作爲最終用戶,現在唯一的解決方案是手動更改browserify td以引用不破壞它的node版本。這聽起來對我來說不是一個理想的場景。

回答

1

這個討論有兩個有趣的方面。

第一個問題是定義會隨着TypeScript語言的新版本的出現而出現,這些功能使定義更容易和更準確。一個很好的例子就是工會類型。

第二個問題是第三方庫不斷更新,因此定義隨庫一起移動。如果你正在使用「幾乎最新的一切」,這一切都很好,但如果你正在尋找一個組合,它將變得不可能(即使用jQuery 1.9的TypeScript 1.1)。

通常情況下,您可以通過查看更改來查看定義的歷史記錄,因此如果需要庫的較舊版本,您可以找到它 - 但您可能會遇到TypeScript語言問題。例如,如果您想使用庫的較舊版本,則可能會發現.d.ts使用bool而不是boolean,並且在編譯之前需要進行更新。

上有絕對鍵入的有關該兩個相關的問題:

https://github.com/borisyankov/DefinitelyTyped/issues/3031

https://github.com/borisyankov/DefinitelyTyped/issues/2972