簡體   English   中英

我應該如何在TypeScript 2中使用@types

[英]How should I use @types with TypeScript 2

到目前為止,我們被用來TSD或(更好的版本吧) 分型

但是現在TypeScript 2提供了新的@types功能,我應該如何將當前項目轉換為@types?

我有tsd.json(typings.json是一些情況)與所有依賴項,移動到TypeScript 2的步驟是什么?

什么是新的最佳做法? @types是否支持特定版本?

這很簡單。 只需通過npm安裝所需的定義即可。

例如,如果您需要lodash,您可以:

npm install --save @types/lodash

一旦安裝完畢,您就可以立即在項目中使用它。 Typescript將默認從node_modules / @ types文件夾解析已安裝的@types包的類型 不再需要tsd.jsontypings.json文件。

附加要點:

  • npm中@types包的主要版本和次要版本應與包版本相對應。
  • 您可以在此處搜索類型: http//microsoft.github.io/TypeSearch/
  • 在這里閱讀有關typeRootstypes信息 特別要注意這兩點:
    • 如果在typeRoots中指定了typeRoots ,則只有指定的文件夾將用於類型根。 除非您指定,否則將排除./npm_modules/@types/
    • 如果typestsconfig.json指定,則只有指定的軟件包將被包括在內。

這里的博客文章中閱讀更多內容。

Typescript 2.0擺脫了以前的打字系統。
現在, Typescript 2.0應默認查看./node_modules/@types並獲取您作為單獨節點模塊npm install --save @types/react ,例如npm install --save @types/react (如@David Sherret所述)

當前版本的Typescript 2.0 beta中存在一個錯誤,它不會加載新類型。 手動通過cmd new tsc編譯文件,但VS 2015中沒有IntelliSense支持,並且.ts文件處於編輯模式時沒有顯示錯誤。

要解決此tsconfig.json ,請使用類似的設置修改tsconfig.json

{
  "compilerOptions": {
     // ... other config rows 
   "typeRoots": [ "node_modules/@types/" ],
    "types": [ "jquery", "react", "react-dom", /*... your other types */ ],
  }
}

對我來說,手動"types"聲明幫助解決了這個問題,對於其他人"typeRoots"幫助。 希望它能節省開發人員的工作時間。

看起來它們都只是npm包,你可以在這里找到所有支持的包。

tsc將獲取node_modules文件夾中的任何類型。

您可以在package.json中移動typings.json中的依賴項(前提是您更改了名稱)。

你可以在這里閱讀更多相關信息。

我應該如何將當前項目轉換為與@types一起使用

我絕對建議堅持一段時間。

例如問題仍在修復...僅僅4小時前: https//github.com/Microsoft/TypeScript/issues/9725#issuecomment-233469422

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM