[英]TypeScript Import Confusion - It Can't Be This Hard
我已經開始使用TypeScript了兩年了。 我無論如何都不是專家,但是我花了一些時間在生態系統中:使用VS2015和節點工具,使用VSCode,以及在命令行使用tsc和鍵入(也被VSCode使用)。
我一直在努力嘗試用正確的方法在我編寫的代碼中獲得靜態類型和自動完成等功能。
我有一個維護的倉庫(EasyNodeQ),這是我TypeScript體驗的開始,我使用/// reference和DefinitelyTyped將其存儲到一個易於管理的地方。 但是任何時候我試圖在另一個項目中使用它時,我都會遇到問題。
事情變得更好一點 ,當我開始使用分型(而非下載* .d.ts文件我自己),特別是與環境標志。
但是我在嘗試在其他項目中使用該程序包時仍然遇到很多問題。 根據我采用的方法,我會得到很多重復標識符,或者找不到模塊或...
范圍從Node定義到我在兩個地方都使用的包(例如node-uuid)。
我要了解的是:我如何構造EasyNodeQ,以便在我進行工作時,既可以得到TypeScript的靜態類型輸入好處,又可以將其無縫地包含在其他項目中,然后還可以得到這些好處?
那有意義嗎?
基本用例是:npm安裝軟件包並獲取其類型,使用my EasyNodeQ軟件包並獲取其類型,在使用EasyNodeQ和其他軟件包的新項目中進行工作,並輕松管理這些類型。
最好以VSCode或命令行方式...
這是與ES6和最新版本的TypeScript一起使用的(盡管與ES5配合使用的答案會很好-只是不需要)。
我希望這是有道理的。 我四處張望,無法拼湊出有效的答案。
更新
我不敢相信我已經按照“正確”的方式進行了操作,但是它現在可以正常工作了,所以我認為我會發布我所做的各種事情(通常按照我認為它們很重要但不具有包容性的順序,因為我可能忘了一些)。
今天有幾種方法可以使這項工作。 如您所述,使用Typings可以處理其NPM軟件包中未包含的定義。 對於這種情況,您可以使用package.json
的typings
字段,它將與節點模塊解析一起使用。 將它們組合在一起時,您可以發布同時使用typings.json
和依賴打包類型的程序包-盡管現在這迫使您的使用者使用Typings來安裝定義。 但是,這些都不能與“環境”定義一起使用,因為它們無法正確命名空間。
這可能很有用: https : //github.com/typings/typings/blob/master/docs/faq.md#should-i-use-the-typings-field-in-packagejson 。 我還使用了兩個工作流程,也有很多示例: https : //github.com/blakeembrey/change-case/blob/master/package.json#L6一直使用節點模塊解析,而https:// github。 com / blakeembrey / popsicle / blob / master / typings.json ,它改用Typings。 僅可能使用Typings,因為它可以為您創建命名空間的環境模塊,但它們不會沖突。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.