我一直有很多問題讓TypeScript使用import
語句正常工作。何時在腳本中使用腳本標記包含JS庫?
例如,我目前正在使用Leaflet構建Angular2應用程序。我已經設法正確加載了一些庫,例如Lodash和Leaflet,但現在我正在努力獲得Leaflet插件,Leaflet.MarkerCluster以正常工作。
我進口的方式如下:
import L from 'markercluster';
我在SystemJS定義如下:
markercluster: 'node_modules/leaflet.markercluster/dist/leaflet.markercluster'
這將導致MarkerCluster文件加載並附加我可以從L.MarkerClusterGroup
訪問它,例如,當我在控制檯中測試它時。
但是,當我在TypeScript模塊中運行它時,出現錯誤。我做了一些挖掘,這似乎是由於生成的JavaScript正在運行的方式。生成的JavaScript實際上並沒有試圖訪問L(單張全局對象),而是它的訪問:
var m = new markercluster_1.default.MarkerClusterGroup();
檢查markercluster_1.default
,我可以看到它是一個空的對象。不知道如何解決這個問題,但我想這是否值得在這種情況下使用import語句?如果僅僅包含在頁面的頂部,並且在TypeScript文件中使用///<reference path='....'>
來嘗試訪問模塊,會更有意義嗎?