2016-08-14 40 views
7

當涉及到使用Typescript時,我們需要考慮如何解析類型定義文件(* .d.ts)。TypeScript的類型定義管理系統(如tsd)的最佳解決方案是什麼?

只要我知道,有幾個系統來管理打字稿定義系統如下。

  • TSD
  • 分型
  • @types

我猜TSD是最古老的一個,那就是出身。 但是,爲什麼typings需要出生?我想爲類型製作定義文件有點複雜。

究竟是什麼@types

那麼,圍繞這個問題的最佳解決方案是什麼?

+0

我只是在本地手動管理我的類型;作品不知道。我偶爾會將它們從definatelyTyped複製,如果它們的質量足夠好並且是最新的,這並不常見。 – AlexG

回答

8

TypeScript的打字管理生態系統背後的故事非常大。

首先存在一個名爲DefinitelyTyped的巨石資源庫,它被用作所有想要爲不同類型庫貢獻類型的開發者的中心。

由於這個存儲庫的類型管理器名爲tsd,它直接從該存儲庫取得類型並將它們保存到本地項目中。

同時,DT回購超過了它的縮放能力和had to be restructured。討論進一步討論了d.ts.文件應該是什麼樣子,所以有一點需要另一種在你的項目中包含類型的方法。另一個問題是庫和TypeScript編譯器本身的版本控制。

然後在一個點Blake Embrey創造了一個新的分型的經理叫typings其中有對DefinitelyTyped支持和構建一個d.ts的新提議的方式。新的結構允許兩種類型的模塊 - 全局變量(大多數DefinitelyTyped模塊)和應該被封裝的模塊。

後來TypeScript 2.0 Beta由微軟公佈。 TypeScript背後的團隊意識到在處理打字文件時需要採用不同的方式。他們所做的是一個@types npm示波器,其中they announced will be the new way of handling typings。此時@types僅適用於TypeScript 2.0。

聲明文件(.d.ts文件)是在TypeScript中使用現有JavaScript庫的基本組成部分,但獲取它們一直是我們知道有改進空間的地方。隨着我們越來越接近TypeScript 2.0,我們非常高興地展示我們計劃簡化事件的高峯。在TypeScript 2.0中獲取類型聲明不需要npm之外的工具。

所以你的問題的答案:

如果使用下面的打字原稿2.0使用typings,但如果使用2。0使用@types

+4

感謝@drinchev,看起來很精確 - 值得指出的是,Typings是和正在演示如何使用TypeScript來管理依賴關係(以前,這對DefinitelyTyped + TSD是不可能的,並且作爲模塊作者我自己也不可接受)。 TypeScript現在已經理解了這一點,並努力幫助將提案合併到2.0的核心中。 – blakeembrey

相關問題