2014-10-09 88 views
27

我想在打字稿文件中使用JavaScript函數。我怎樣才能引用包含打字稿文件內的那個函數的JavaScript文件?打字稿內參考JavaScript文件

我試圖

<reference path="../libs/myjsfile.js" /> 

此同時建立類似帶來了一個錯誤:Cannot resolve referenced file: ../libs/myjsfile.js

回答

5

你只需要告訴該方法存在外打字稿編譯:

declare function myJavaScriptFunction(param1: number, param2: JQuery): void; 

確保該網站加載所有需要的文件,正常的js文件和打字稿編譯器生成的js文件

0

同時建立這樣帶來了一個錯誤:無法解析引用的文件:../libs/myjsfile.js

參考文件標籤是打字稿不是JavaScript的。您可以在頁面中使用腳本標記加載JavaScript(或類似requirejs)。

要使用TypeScript中的JavaScript,您需要聲明您希望用於TypeScript使用的JavaScript的API(如AKR指出的那樣)。

32

雖然上述兩個答案適用於小型或單個變量API,但正確的答案是爲您的JavaScript文件編寫一個類型聲明文件。

您的示例中的類型聲明文件將被命名爲myjsfile.d.ts,其中.d.ts後綴就是告訴編譯器打字稿,它的解析聲明文件。如果您使用Visual Studio,只要它在您正在處理的項目中的某處(任何地方),您的聲明文件就會被TypeScript編譯器識別。

聲明文件存儲有關JavaScript變量,函數和對象的元數據,以便TypeScript編譯器可以完成其工作。如果您的JavaScript文件碰巧是常用的庫或框架,那麼DefinitelyTyped絕對是您找到您需要的定義文件的地方。

如果您的JavaScript是您自己的工作或不太知名,您將不得不編寫自己的類型聲明文件。請參閱The TypeScript Handbook中寫入.d.ts文件

如果名稱聲明文件聽起來令人生畏,請不要擔心 - 它們比編程要容易得多。另外,請記住,您不需要爲JavaScript文件指定所有元數據,只需指定所需的功能即可。

讓我知道你是否需要任何幫助!

+0

+1好TR:DR如何工作,一般而言,感謝DefinatelyTyped回購,似乎最好在決定一個庫之前首先檢查。 – 2015-03-13 10:58:10

+2

但是如何將.d.ts包含在.ts文件中? – 2015-12-22 04:13:19

+0

d.ts文件需要與.ts文件位於同一項目中 – Doug 2016-01-28 20:55:55