【发布时间】:2020-10-05 17:36:33
【问题描述】:
我正在尝试在我的项目中使用新的 ol (>6.0.0) 和 typescript。在以前的版本中,我可以像这样使用它 -
///<reference path='../@types/openlayers/index.d.ts'/>
并使用全局 ol 对象,例如
ol.source.OSM()
但是新版本的 ol 实际上并没有这个单一的对象,而是一些模块。我尝试使用新 ol 的类型来引用文件夹的路径,但它似乎并没有真正起作用。另一方面,当我尝试导入它们时,例如
import * as Map from 'ol/Map'
它说,我必须在我的打字稿配置中使用模块:“系统”或模块:“AMD”。但这是唯一的方法吗?我的项目结构比较复杂,很难实现requirejs或者systemjs。在这种情况下,最好的解决方案是什么?
更新: 我在 index.html 中添加了 systemJS。但是有一个大问题 - 每当我尝试导入我的 js 文件时,使用 systemjs 它工作得很好 - 我可以使用在其中声明的所有函数等等。但是,当我在文件中包含任何导入时(例如 import {A} from "someconst"),systemjs 会停止处理大量错误消息。我完全不明白为什么会这样。
【问题讨论】:
-
哦,真的。但是我可以以某种方式将它与打字稿一起使用吗?我的意思是,没有打字:(
标签: javascript typescript openlayers