2016-01-20 52 views
3

我想在Angular 2/Typescript應用程序中使用第三方.js庫。網上有一些例子(如使用declare var libraryVar:any;),但似乎沒有任何工作。有沒有一種正確的方法將.js庫集成到Typescript/Angular2中?如何在Angular 2/Typescript應用程序中使用第三方js庫?

+0

什麼庫?嘗試TSD。 –

+0

uuid.js我想我可以在DefinitelyTyped上找到它,但不知道下一步該怎麼做。 –

+0

tsd install uuid --save, bower install node-uuid --save, 設置tsconfig.js文件忽略bower-components, –

回答

0

我發現使用外部庫的最佳方式是在打印機頂部爲它創建一個變量並導入js。通過這樣做,變量將提供庫中在TS內提供的所有功能,而無需額外的工作。

例如,如果你想使用moment.js做一些時間計算。 後添加到您的TS文件

var moment = require("./scripts/moment"); 

,你可以直接使用可變

moment.fromNow("SOMEDATE"); 

我確切的問題前兩天遇到使用您的打字稿裏面的功能,我看到這是一個很好的方法,另一個很好的方法是用所有的助手創建一個打字稿類,並將打字稿引用到你的文件中並調用其中的助手。仍在試驗一個堅實的模式,但這將是一個起點。

+1

我得到這個錯誤當我嘗試:ReferenceError:require沒有定義 –

+0

我不'相信這在Angular 2中有效。 – Jeff

+0

不能與角2一起使用 – Michael

1

該網站是充滿了打字稿項目消耗的第三方庫的例子。

Here是我的一個使用arcgis-js-api的程序。

Here是使用開放層的。

你的情況,你會嘗試這樣的:

bower init 
bower install node-uuid --save 
tsd install uuid --save 

然後設置你的tsconfig.json文件。我認爲Angular 2使用了systemjs,所以你想設置module =「system」(見system),除非你有理由不這樣做。

我還沒有與systemjs多少運氣,但你可能需要做這樣的事情來獲得它加載uuid或任何其他AMD模塊:

window.define = System.amdDefine; 
window.require = System.amdRequire; 

一個解釋見system-api

相關問題