在相同的命名空间打字稿下多次导入

时间:2018-03-14 10:22:06

标签: typescript ionic-framework import leaflet ionic3

我知道这将是一个愚蠢的问题,但我已经环顾四周,没有找到任何有助于我理解的内容。

我有一个离子项目,我导入了leafletjs 现在一切正常,我使用以下代码导入它:

import leaflet from 'leaflet';
import leaflet from 'leaflet-easybutton';

现在我想将leaftlet.easyButton添加到我的项目中。

在我看来,这个图书馆应该扩展传单,对吧?

leaflet.easyButton('fa-globe', function(btn, map){
     helloPopup.setLatLng(map.getCenter()).openOn(map);
}).addTo( YOUR_LEAFLET_MAP );

当然,这种方法会给命名空间带来问题。

现在我想要实现的是通过扩展他的方法来使用leaflet来包含easybutton库提供的方法。

为了能够做到这样的事情:

std::future

所以问题是,如何在打字稿中导入第二个库,以便能够像上面的例子那样使用它?

2 个答案:

答案 0 :(得分:2)

Leaflet.EasyButton插件仅执行将一些新方法(easyButton ...)和类(Control.EasyButton ...)附加到L Leaflet全局命名空间的副作用。 / p>

因此,您只需将其导入以产生副作用:

import * as L from 'leaflet';
import 'leaflet-easybutton';

L.easyButton( /* ... */ );

答案 1 :(得分:0)

我尝试导入两个不同的Keyboard插件时遇到了类似的问题。一个解决方案是命名其中一个插件:

// imports
import leaflet from 'leaflet';
import * as easyButton from 'leaflet-easybutton';


// usage
leaflet //first plugin
easyButton.leaflet //second plugin