import 语句中可用 as 为命名导出项重命名,语法为 { originalName as newName },仅影响当前作用域;不可用于默认导出,且重命名必须严格匹配导出标识符名。

导入时用 as 重命名命名导出项
在 import 语句中解构命名导出时,可直接用 as 关键字为导入的变量指定新名称。语法是:import { originalName as newName } from './module.js'。这不会修改原模块内部变量名,只影响当前文件的局部绑定。
- 原模块导出:
export const userName = 'Alice'; export function fetchData() { ... } - 导入并重命名:
import { userName as nick, fetchData as load } from './api.js' - 之后可直接使用
nick和load,原名userName、fetchData在当前作用域不可访问
可混合使用原名与别名
同一个 import 语句中,可以一部分保留原名,另一部分重命名,提高可读性或避免冲突。
import { PI, add as sum, multiply as mul } from './math.js'- 其中
PI直接使用原名,add和multiply分别变成sum和mul - 适合已有函数名语义不清晰,或项目中已存在同名变量需规避的情况
不能对默认导出使用花括号 + as
默认导出(export default)本身不具名称,因此不能写成 import { default as xxx } —— 这种写法语法错误。正确方式是:
- 单独导入默认导出:
import myFunc from './module.js'(名字任取) - 若想同时导入默认 + 命名导出,且给默认起别名,仍用无花括号形式:
import myDefault, { foo } from './module.js' - 真要“重命名默认导出”只能在导出端做:
export { default as coolThing } from './module.js'
常见错误提醒
重命名导入看似简单,但几个细节容易出错:
- 拼写必须完全匹配导出时的标识符名(大小写敏感),
{ username }无法拿到export const userName - 重命名只作用于当前 import 语句,不影响其他模块;别人导入时仍需按原始导出名或其重命名规则来写
- 不能对未导出的变量重命名,比如
import { internalVar as x } from './m.js'→x值为undefined,不报错但逻辑失效


















