首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >typescript将元素添加到对象

typescript将元素添加到对象
EN

Stack Overflow用户
提问于 2018-01-04 01:05:49
回答 2查看 358关注 0票数 0

如何在这个对象中添加'Open Street Map': this.LAYER_OSM.layer, (最后)?:

代码语言:javascript
复制
layersControl = {
  baseLayers: {
    'Route': this.LAYER_GStM.layer,
    'Satellite': this.LAYER_GSaM.layer,
    'Terrain': this.LAYER_GTM.layer
  }
};

this.layersControl.baseLayers ...add/push... ??

我尝试这样做:

代码语言:javascript
复制
this.layersControl.baseLayers['Open Street Map'] = this.LAYER_GTM.layer;

但是我有这个错误:

代码语言:javascript
复制
Element implicitly has an 'any' type because type '{ 'Route': TileLayer; 'Satellite': TileLayer; 'Terrain': TileLayer; }' has no index signature.
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-04 01:48:44

通过@JB Nizet查找解决方案

代码语言:javascript
复制
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;
票数 0
EN

Stack Overflow用户

发布于 2018-01-04 04:31:56

正确的方法是添加索引签名:

代码语言:javascript
复制
 interface ILayersControl  {
  baseLayers: {
   [key: string]: TileLayer
  }
 }

所以你可以这样做

代码语言:javascript
复制
 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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48081931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档