我在使用import语句使typescript正常工作方面遇到了很多问题。
例如,我目前正在使用说明书构建angular2应用程序。我已经成功地加载了一些库,比如lodash和fluel,但是现在我正努力让fluel插件fluel.markercluster正常工作。
我导入的方式如下:
import L from 'markercluster';
我的systemjs定义如下:
markercluster: 'node_modules/leaflet.markercluster/dist/leaflet.markercluster'
这会导致markercluster文件加载和附加,我可以从asL.MarkerClusterGroup访问它,例如,当我在控制台中测试它时。
但是,当我在typescript模块中运行它时,我得到一个错误。我做了一些挖掘,这似乎是由于生成的javascript的运行方式。生成的javascript实际上并不试图访问l(单张全局对象),而是访问:
var m = new markercluster_1.default.MarkerClusterGroup();
检查markercluster_1.default,我可以看到它是一个空对象。不知道如何解决这个问题,但我想在这种情况下使用import语句是否值得?简单地在页面顶部的a中包含并在尝试访问模块的typescript文件中使用///<reference path='....'>是否更有意义?

最佳答案

不知道如何解决这个问题,但我想在这种情况下使用import语句是否值得
我的意见
避开Systemjs。只需使用webpack。
使用require
样品:

import * as leaflet from "leaflet";
// Augment leaflet
require('./leaflet.markercluster/dist/leaflet.markercluster');

// use new feature
(leaflet as any).MarkerClusterGroup;

派对

09-30 18:59