繁体   English   中英

传单 GeoJSON 类型未与 GeoJSON 对象关联

[英]Leaflet GeoJSON type not associating with GeoJSON object

我已经广泛使用 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包/repo 发送拉取请求,或者简单地忽略 TypeScript 编译器错误,并在使用initialize方法的行上方使用// @ts-ignore注释指令。

你不想做这样的事情吗?

export class Layer extends GeoJSON {
   initialize() {
      super.initialize()
   }
}

我承认虽然不知道传单。 但这将是我的第一个猜测。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM