angular - 如何在 VS Code IntelliSense 中显示 Leaflet Marker-Cluster 可冻结方法
我正在做一个 Angular 项目,其中使用了 Leaflet 地图服务。我遇到了一个聚类问题。我想切换聚类功能,为此我找到了一个包,它有启用/禁用聚类功能的方法:Leaflet.MarkerCluster.Freezable
我已按照说明进行了软件包安装:
npm install leaflet.markercluster.freezable --save
它安装在我的node_modules文件夹下,并更新了package.json(安装成功)- 现在如果我尝试在我的 TypeScript 文件 中
import 'leaflet.markercluster.freezable';,我的 VS Code 在 IntelliSense 功能中不会显示该包的方法。
我不明白哪里出了问题(我认为可能是导入出了问题)。
答案#1
不幸的是,目前还没有可用于 Leaflet.MarkerCluster.Freezable 库的类型定义。
你应该能够自己写出它们,大致如下:
leaflet.markercluster.freezable.d.ts
import 'leaflet';
import 'leaflet.markercluster';
declare module 'leaflet' {
// Augment the MCG class through an interface with the same name
interface MarkerClusterGroup {
freezeAtZoom(frozenZoom?: number | boolean | 'max' | 'maxKeepSpiderfy'): this;
unfreeze(): this;
disableClustering(): this;
disableClusteringKeepSpiderfy(): this;
enableClustering(): this;
}
}
然后在你的 TypeScript 项目配置中引用这个定义文件。
游乐场链接
答案#2
请将 leaflet.markercluster.freezable.js 文件路径添加到您的 angular cli json 文件的 scripts 部分,如下所示
..\node_modules\leaflet.markercluster.freezable\dist\leaflet.markercluster.freezable.js
"scripts": [
"../node_modules/angular-ui-grid/ui-grid.min.js",
"../node_modules/leaflet.markercluster.freezable/dist/leaflet.markercluster.freezable.js"
],
然后我认为它将能使用 import 'leaflet.markercluster.freezable'
