2016-05-31 70 views
90

我注意到有一個npm組織@types,其中包含打字包,但找不到任何文檔。這些意味着如何使用?npm @types org包中的TypeScript類型

是否與typings工具一起使用?如果是這樣,如何安裝它們?例如,有一個@types/openlayers包,但typings search npm:openlayers什麼都不返回。

是否與打字工具分開使用?例如。直接安裝npm

+6

謝謝你的提問。 –

回答

78

從TypeScript 2.0開始,類型不再需要。 npm組織是一個設立開發團隊的實體。我相信微軟在npm中設置@types組織,並將TypeScript開發團隊添加到組織中。 @types組織下的軟件包將根據docs使用類型發佈者工具從DefinitelyTyped自動發佈。

此外,爲了有另一種方式來增加types到你的包:

在你的package.json

如果你的包有一個主.js文件,你需要指明主聲明文件也在您的package.json文件中。將types屬性設置爲指向您的捆綁聲明文件。例如:

{ 
    "name": "awesome", 
    "author": "Vandelay Industries", 
    "version": "1.0.0", 
    "main": "./lib/main.js", 
    "types": "./lib/main.d.ts" 
} 

注意,"typings"場是"types"的代名詞,並且可以使用。

還要注意的是,如果你的主要申報文件被命名爲index.d.ts,住在包的根(旁邊index.js)你不需要爲了紀念"types"財產,但最好是這樣做的。

關於搜索類型

在大多數情況下,類型聲明包應始終具有相同的名稱作爲新公共管理軟件包的名稱,但@類型/前綴,但如果你需要,你可以請查看https://aka.ms/types以查找您喜愛的圖書館的套餐。

從 - http://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html

但是,當我做了npm search @types/openlayers,我沒有得到任何結果。但是通過網絡界面進行搜索確實讓我獲得了結果。所以我想npm search不跨組織搜索。

+0

很好的回答!少量編輯會很好,但是這對解釋當前狀態的能力要好得多。 –

+0

既然你在''types''屬性下的''package.json''中指定了一個文件,我注意到你正在談論**捆綁聲明文件**。在像gulp這樣的自動構建系統中實現這一點最簡單的方法是什麼? – Nicky

6

這將是在Typescript 2.0中推出的一項功能。這爲UMD模塊/庫及其各自的定義提供了類型支持。

請參閱https://github.com/Microsoft/TypeScript/issues/7125#issuecomment-210182488以更好地瞭解目前使用環境類型的問題。

+0

謝謝!這很有用,但我沒有看到討論@types npm組織的GitHub問題。 @types org是專門爲UMD'///

37

公佈打字稿博客回答了這個:The Future of Declaration Files

摘要:

@types NPM組織是獲得與npm類型定義。使用這些類型定義是TypeScript 2.0中的一個特性。

這將取代目前的項目/工具,如typingstsd,雖然這些將繼續支持一段時間。

+1

嘿羅恩,所以我想要得到這些設置,但它似乎並不像VSCode實現我已安裝它們。在使用'core-js' w /'npm i @ types/core-js --save'之類的東西后,我可以看到它在文件夾中,但項目仍然會拋出錯誤。還有什麼我應該做的?我是否需要讓tsconfig知道@types或其他?就像肖恩說的那樣,目前還沒有任何類型的文檔:( –

+0

@MarkPieszak你必須確定VSCode使用的是TS2.0。查看如何在本地安裝TypeScript並在VSCode中使用它:https://github.com/Microsoft/TypeScript/wiki/Nightly-drops –

+0

是的,它是@ nino.porcino謝謝:)'tsdk'需要指向2.0beta安裝的TS –

相關問題