我已经广泛使用Leaflet 0.7,但是第一次为新项目尝试1.7。我正在尝试扩展GeoJSON图层类以使用默认pointToLayer
方法,但这些尝试似乎失败了,因为GeoJSON的类型定义未与对象关联...这是我正在尝试的方法:
import { GeoJSON } from 'leaflet';
const geojsonMarkerOptions = {
...
};
export const Layer = GeoJSON.extend({
initialize: function() {
GeoJSON.prototype.initialize.call(this, [], {
pointToLayer: (feature, latlng) => this.pointToLayer(feature, latlng)
});
},
pointToLayer: function(feature, latlng) {
...
}
}
编译器抱怨:
类型“ GeoJSON”上不存在属性“初始化”
因此,我以某种方式不将GeoJSON类型与GeoJSON对象相关联...您是什么?我正在使用Leaflet 1.7.1,@ types / leaflet 1.5.19和Typescript 4.0.3。我已经更新到Angular 10,并且删除并重新安装了Leaflet及其@types包,并且还尝试清除节点模块并重新安装它们。有人知道我在这里做错了吧?
虽然Leaflet JS代码确实initialize
在其类上有一个方法,并且在文档示例中已提及了此方法,但是API中并未明确描述该方法,因此可能未将其包含在类型中的原因...
您可以添加它,或者更好地将“拉取请求”发送到@types/leaflet
包/存储库,或者只是// @ts-ignore
在使用initialize
方法的行上方使用注释指令忽略TypeScript编译器错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句