esmodule中重命名导出与导入均通过as关键字实现别名映射;导出时用export { original as new },导入时用import { exported as local } from '...';支持默认导出重命名导入及命名空间结合解构重命名。

ESModule 中重命名导出与导入,核心是用 as 关键字实现别名映射,解决命名冲突或提升可读性。
导出时重命名(重命名导出)
在定义模块时,可以用 as 给导出的变量、函数或类指定别名,不改变其原始名称,仅调整对外暴露的名称。
- 语法:
export { originalName as newName }; - 适用于已声明的变量/函数,也支持默认导出重命名(但需注意默认导出本质是命名导出的特殊形式)
- 示例:
const formatDate = (date) => new Date(date).toLocaleString();
const validateEmail = (email) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
<p>// 重命名导出
export { formatDate as format, validateEmail as checkEmail };
</p>
导入时重命名(重命名导入)
在导入时使用 as,把引入的名称映射为本地更易理解或不冲突的变量名。
- 语法:
import { exportedName as localName } from './module.js'; - 可混合使用:一部分重命名,一部分保持原名;也可同时重命名多个
- 示例:
import { format as prettyDate, checkEmail as isValid } from './utils.js';
<p>console.log(prettyDate('2024-01-01')); // "1/1/2024, 12:00:00 AM"
console.log(isValid('test@example.com')); // true
</p>
默认导出 + 重命名导入
默认导出本身没有名称,导入时可以任意命名;若想统一风格或避免歧义,也可显式用 as 声明别名。
- 默认导出写法:
export default function myFunc() { ... } - 导入时重命名:
import { default as myFunc } from './module.js'(不常用但合法) - 更常见的是直接重命名默认导入:
import myFunc from './module.js',此时myFunc就是别名 - 注意:不能对默认导出使用
export { something as default }—— 这是语法错误
批量重命名与命名空间导入结合
当模块导出大量内容,又需要统一前缀或避免污染作用域时,可配合命名空间导入(import * as ns)和解构重命名。
- 先整体导入为命名空间对象,再解构并重命名:
import * as utils from './utils.js';
const { format: formatDate, checkEmail: emailCheck } = utils;
- 或一步到位(ES2023+ 支持解构重命名语法):
import * as utils from './utils.js';
const { format: formatDate, checkEmail: emailCheck } = utils;
这种写法适合动态处理、条件导入或需要保留原始模块结构的场景。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











