如何在这个对象中添加'Open Street Map': this.LAYER_OSM.layer, (最后)?:
layersControl = {
baseLayers: {
'Route': this.LAYER_GStM.layer,
'Satellite': this.LAYER_GSaM.layer,
'Terrain': this.LAYER_GTM.layer
}
};
this.layersControl.baseLayers ...add/push... ??我尝试这样做:
this.layersControl.baseLayers['Open Street Map'] = this.LAYER_GTM.layer;但是我有这个错误:
Element implicitly has an 'any' type because type '{ 'Route': TileLayer; 'Satellite': TileLayer; 'Terrain': TileLayer; }' has no index signature.发布于 2018-01-04 01:48:44
通过@JB Nizet查找解决方案
layersControl: any = {
baseLayers: {
'Route': this.LAYER_GStM.layer,
'Satellite': this.LAYER_GSaM.layer,
'Terrain': this.LAYER_GTM.layer
}
};
this.layersControl.baseLayers['Open Street Map'] = this.LAYER_OSM.layer;发布于 2018-01-04 04:31:56
正确的方法是添加索引签名:
interface ILayersControl {
baseLayers: {
[key: string]: TileLayer
}
}所以你可以这样做
const layersControl: ILayersControl = {
baseLayers: {
'Route': this.LAYER_GStM.layer,
'Satellite': this.LAYER_GSaM.layer,
'Terrain': this.LAYER_GTM.layer
}
};
layersControl.baseLayers["Open Street Map"] = this.LAYER_OSM.layer;https://stackoverflow.com/questions/48081931
复制相似问题