TypeScript中重命名@arcgis/core包的__esri命名空间
解决方案
你可以通过在自定义的.d.ts文件中利用TypeScript的export import语法,快速将__esri命名空间重命名为esri,无需手动枚举所有类型:
步骤1:创建自定义类型声明文件
在项目根目录(或任意TypeScript能识别的类型目录)新建一个文件,比如arcgis-alias.d.ts,写入以下代码:
// arcgis-alias.d.ts import type * as __esri from '@arcgis/core/interfaces'; // 全局声明esri命名空间,自动导入__esri的所有内容 declare global { namespace esri { export import * from '@arcgis/core/interfaces'; } } // 确保文件被当作模块处理(避免全局命名冲突) export {};
步骤2:验证使用方式
现在你可以在项目的TypeScript文件中直接使用esri命名空间替代__esri:
// 示例:引用FeatureLayerProperties类型 const layerProps: esri.FeatureLayerProperties = { url: "your-feature-layer-url" }; // 示例:引用GroupLayer类 const groupLayer = new esri.GroupLayer({ title: "My Group Layer" });
原理说明
@arcgis/core/interfaces模块已经导出了__esri命名空间下的所有类型定义- 通过
export import * from '@arcgis/core/interfaces',我们将该模块的所有类型自动导入到自定义的esri全局命名空间中 export {}用于将文件标记为ES模块,避免TypeScript将其当作全局脚本处理,防止命名冲突
内容的提问来源于stack exchange,提问作者Seth Lutske
相关产品推荐
相关产品推荐

