【问题标题】:Access ES6 type with same name as imported type访问与导入类型同名的 ES6 类型
【发布时间】:2017-11-22 06:43:59
【问题描述】:

我有一个 Typescript 类,我在其中导入了一些 Map 模块:

import { Map, MapboxOptions, MapDataEvent, MapMouseEvent } from "mapbox-gl";

在代码的后期,我有一个使用 ES6 的 Map 对象的函数。它给了我一个编译错误:

type Map is not generic

这是因为它试图使用 Mapbox Map 而不是 ES6 Map。

我知道我可以重命名 Mapbox 的地图名称,所以每个类只有一个地图名称,但我想知道:是否可以在不重命名 Mapbox 的情况下访问 ES6 地图类型?

【问题讨论】:

  • 您可以使用global.Map,假设您尚未将 Mapbox 地图分配给全局范围。

标签: javascript typescript types ecmascript-6


【解决方案1】:

是否可以在不重命名 Mapbox 的情况下访问 ES6 Map 类型?

不推荐。如果要使用同名的全局变量,请重命名局部变量(在您的情况下为导入)。

破解

使用global.Map,但同样不推荐。更简单的解决方案是重命名导入。

【讨论】:

  • 哦!完美的。这是有道理的:没有办法知道global 是否在其他地方重新定义。谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-02-26
  • 1970-01-01
  • 2017-08-22
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
  • 2020-10-19
  • 1970-01-01
相关资源
最近更新 更多