2016-07-05 50 views
0

当有全局可访问类型的两个定义时,Intellisense会变得困惑。因此,在我将描述的情况下,即使我的解决方案正在编译,我也经常在Intellisense中看到错误,因为确实有两个同名的元素可以全局访问:LeafletMap,从L命名空间:L.Map和地图,从core-js(一个小型​​图书馆,每周有100万次下载,在SO上没有标签)。它如何解决两个定义之间的智能感知冲突?

显得多么奇怪的是,在附加的图片:我定义了一个LeafletL.Map,然后试图将它传递给我的标记的addTo方法时,它的投诉,地图实际上应该有Map<Object, Object>类型,这绝对是假的。

任何我可以做的以避免这种情况在Visual Studio 2015Typescript

Intellisense confused between a Dictionary map and a Leaflet map

+0

这就是令人难以置信的奇怪 - Leaflet“Map”类型在命名空间内的事实应该会阻止编译器将两者混合在一起。您使用哪些库类型定义集,DefinitelyTyped? –

+0

是的,DefinitelyTyped,都是'core-js'和'Leaflet'。这是问题中最奇怪的部分。 –

+0

据我所知,它实际上抱怨说,当你期望'Map '时,你在'map'变量中有一个'L.Map'。 – zlumer

回答

0

除非有人明确地把它从全球范围单张Map不会与全球Map冲突:

// something like; 
import Map = L.Map; 

更多

要格外肯定尝试另一种IDE(例如http://alm.tools/

+0

试图安装。具有讽刺意味的是:http://imgur.com/5YBGFPb –