我正在尝试让 Leaflet 库与我的 Typescript 项目配合得很好。
我的项目遵循 commonJs 模式(我的源文件中的导入\导出),但是当我使用 webpack 构建时,编译器从我的文件中给我以下错误,我尝试访问L
传单模块公开的全局
'L' 指的是一个 UMD 全局,但当前文件是一个模块。考虑改为添加导入。
现在,如果我将传单导入到我的源文件中,我可以解决这个问题,如下所示:
import * as L from 'leaflet'
但是我想知道是否可以在我的所有文件中全局访问 t 而不必在每个文件中导入。
我进行了一番挖掘,发现了一些解决方法,您可以像这样声明自己的全局变量:
全局.d.ts
import * as L from "leaflet";
declare global {
const L: L
}
export {};
我不确定这是否被推荐,感觉有点脏,webpack 配置是否有适当的方法来为 commonJs 项目提供 UMD 模块公开的全局变量,还是我在胡说八道?我承认我在试图理解模块类型及其可互换性之间的差异时感到困惑,所以放轻松!