我正在使用SystemJS/jspm和TypeScript definition manager在TypeScript中構建Aurelia應用程序。我有.ts
源文件在/app/**
和.d.ts
文件下/typings/**
和/jspm_packages/**
(因爲一些定義文件通過jspm發運)。引用TypeScript類型定義
顯然,TypeScript編譯器不理解SystemJS/jspm或TSD,所以我需要以某種方式引用由它們管理的類型定義。我試過將所有.ts
文件傳遞給編譯器,以便它引用源代碼和定義,但這會導致必須下載所有類型定義導入的所有類型定義的漏洞。它最終是類型定義inception(Yo dawg我聽說你喜歡類型定義)。似乎編譯器應該只關心導出的由源直接引用的類型定義(和而不是東西通過這些定義導入)。
無論如何,我感覺我會以錯誤的方式討論這個問題,並且想知道是否有更好的/正確的方式來引用定義文件。
PS:看起來可能有一些解決方案涉及編輯器/插件,但我正在尋找嚴格的CLI方法,因爲這是自動構建的一部分。
你有沒有試過將你的類型文件夾移動到應用程序文件夾內?這樣,那裏的tsconfig.json文件將自動爲你(而不是從jspm中的其他包)拾取你的聲明 – Brocco
它拾取聲明就好,但問題是它跟隨所有類型的引用(導入)定義。所以舉個例子,假設我引用lib A引用lib B.我只需要包含lib A的類型定義。但是現在我需要包含lib A和B的類型定義。 – hcoverlambda
tsd應該爲你處理...即,如果我通過tsd安裝angular的定義,它會自動爲我帶來jquery。 – Brocco