2013-04-05 144 views
2

我構建了一個TypeScript庫,它是我的應用程序的「Core」(稱爲Core.ts),它使用內部模塊和每個文件的單個類編譯爲單個輸出文件(Core.js)。我向編譯器添加了--declaration標誌,並生成聲明文件(Core.d.ts)。問題是,這個生成的聲明文件沒有包含對最初包含在編譯中的其他聲明文件的引用。一旦我將生成的Core.d.ts添加到我的項目中,我會得到類似於來自該文件的未定義的JQuery,Backbone等的1k錯誤。Typescript聲明文件不包含其他聲明文件引用

我有意見標誌設置爲true,它產生的Core.js的評論和引用,但剝奪他們全部離開Core.d.ts

如果我看看其他的定義文件,我從絕對類型化抓起有些確實包含對其他定義文件的引用,所以這看起來像是一個編譯器將它們剝離的錯誤,儘管註釋標記被設置爲true。

請指教。

看來這個問題已經遇到過,但從未調查:

https://typescript.codeplex.com/discussions/434018

回答

1

這聽起來像你期望Core.d.ts包括來自jquery.d.tsbackbone.d.ts的定義,但我認爲在概念上打字稿編譯器希望您參考全部三種:

///<reference path="jquery.d.ts" /> 
///<reference path="backbone.d.ts" /> 
///<reference path="Core.d.ts" /> 

一個典型的例子是jQuery插件 - 每個定義文件都包含defini而不是jQuery,所以你需要引用jquery.d.tsjquery.someplugin.d.ts

更新

其實 - 我覺得你只是希望被列入Core.d.ts參考意見 - 這更有意義。我將評論您關聯的CodePlex上的錯誤,也許它會喚醒討論!

+1

此處添加的評論:https://typescript.codeplex.com/discussions/434018 – Fenton 2013-04-05 15:10:07

+0

謝謝史蒂夫,我希望它會作爲解決方法是相當惱人的。 (編譯 - >手動添加refs>刪除--declaration標誌,以便下一次編譯不會覆蓋 - >運行 - >重新添加 - 聲明標誌並重復進程以更改庫)。我可能會嘗試通過預先編譯_dependencies.ts文件來設置更好的解決方法。 – parliament 2013-04-05 20:07:56