JavaScript 中 import { a as b } 是合法重命名导入语法,export { a as b } 则非法;可通过 export { a as b } from 'x' 重导出实现间接重命名,as 在 JS 中仅用于 import 绑定别名或重导出,非独立关键字。

JavaScript 中没有 as 关键字用于重命名导入或导出成员——这是 TypeScript 的语法,不是原生 JavaScript(ECMAScript)标准的一部分。
ES 模块中的重命名:用 import … as 和 export … as?
原生 JS 的 import 和 export 语句中:
-
import … as namespace是合法的,但它导入的是整个模块的命名空间对象(即一个包含所有导出成员的对象),不是为单个成员“重命名”; -
export … as在标准 ES 模块中不存在,JS 不支持类似export { foo as bar }这样的导出重命名语法(该写法在 TypeScript 中可用,但会被 TS 编译器转成合法 JS)。
JS 中实际可用的重命名方式(导入侧)
你可以用解构 + 别名的方式间接实现“重命名”效果:
import * as mathUtils from './math.js';
const { add: plus, subtract: minus } = mathUtils;或者更常见的写法(直接在 import 中指定别名):
import { add as plus, subtract as minus } from './math.js';✅ 这是标准、可运行的 ES 模块语法。这里的 as 是 import 语句的固有部分,仅用于导入时为导入的绑定指定本地名称,不是独立关键字。
JS 中导出时不能直接重命名,但可以间接实现
原生 JS 不允许:
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
export { foo as bar }; // ❌ 语法错误(未声明的导出)但你可以先声明/解构再导出:
import { foo } from './utils.js';
export const bar = foo; // ✅ 导出新名称或者批量重导出(需目标模块已导出):
export { foo as bar, baz as qux } from './utils.js'; // ✅ 合法(重导出语法)注意:这种 export { … } from '…' 是重导出(re-export),它把其他模块的导出以新名字对外暴露,浏览器和 Node.js 均支持。
TypeScript 中的 as 是编译期语法糖
TypeScript 允许写:
import type { Foo as Bar } from './types'; // 类型导入重命名(TS 特有)或
export { foo as bar } from './utils'; // TS 支持,但编译后仍是合法 JS 的重导出这些在 TS 编译后都会转为上面提到的标准 JS 语法,运行时无 as 关键字参与执行逻辑。

















