我已经广泛使用传单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对象没有关联,这是我对此的解释.你的是什么?我使用的是传单1.7.1、@type/传单1.5.19和打字本4.0.3。我已经更新为角10,删除和重新安装传单和它的@type包,我也尝试清除我的节点模块并重新安装它们。有人知道我做错了什么,对吧??
发布于 2020-10-13 18:16:30
虽然传单JS代码确实在其类上有一个initialize
方法,而且这个方法在文档示例中提到过,但是它并没有在API中得到明确的描述,因此它可能没有包含在类型中.
您可以添加它,或者最好向@types/leaflet
包/repo发送一个拉请求,或者简单地忽略使用initialize
方法的行上方的// @ts-ignore
注释指令的TypeScript编译器错误。
发布于 2020-10-13 17:38:31
你不想做这样的事吗?
export class Layer extends GeoJSON {
initialize() {
super.initialize()
}
}
不过,我承认不知道传单。但这将是我的第一次猜测。
https://stackoverflow.com/questions/64340193
复制相似问题