You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 09:17:42