2012-12-06 97 views
9

我有一個簡單的TypeScript(ts),它需要JavaScript文件中的功能。我怎樣才能將該js文件導入到ts文件中?我是否必須爲該js文件創建一個ts文件才能在我的ts文件中使用它?將js文件加載到打字稿文件中

回答

22

最簡單的方法是隻declare功能你使用:

File1.js

function greet() { return "Hello!"; } 

File2.ts

declare function greet(): string; 

/* ... later ... */ 
var hi = greet(); 

如果你的情況更加複雜叢(即多個文件引用File1.js,或File1.js中有很多函數會使File2.ts變得混亂),則可以創建一個File1.d.ts文件並引用來自File2.ts的文件:

File1。 d.ts

function greet(): string; 

File2.ts

/// <reference path="File1.d.ts" /> 

/* ... later ... */ 
var hi = greet(); 
+0

嗨瑞安,謝謝你的作品!然而,我使用的一個文件有添加到數學庫中的方法。所以Math.uuid.js文件中有三個方法; Math.uuid()返回字符串,另外兩個... TS抱怨這個「聲明函數Math.uuid():string;」 (明顯)。我將如何將這些方法帶入?謝謝! –

+2

找到了!我聲明瞭這個接口... 接口數學{u | uid}():string; } 它很好。 –

+1

有沒有辦法從.js文件自動生成* .d.ts文件?謝謝 - 戴夫 –

2

只是爲了存檔,如果添加///參考您的TS文件中的JavaScript文件,編譯器將嘗試驗證所有的代碼在JS文件中拋出一個巨大的錯誤列表。嘗試使用jQuery或類似的東西,你會明白我的意思。

+0

是的,我已經看到了。我把聲明VAR $,並沒有包括那些沒有jQuery的d.ts文件的項目。 –

+0

這是添加對任何沒有.d.ts文件的類型支持的最快方法。關於定義文件的好處是你得到了Intellisense。 –

+0

https://github.com/borisyankov/DefinitelyTyped –