命名空间、文件与模块分别解决什么问题,现代项目应如何选择
简答题中等980 次浏览
参考答案与解析
# 核心结论
文件、模块和命名空间解决的是不同层次的问题。文件是源码的物理组织单位,但文件是否拥有独立作用域取决于它被视为脚本还是模块。顶层存在 import 或 export 的文件通常是模块,其顶层声明不会直接进入全局作用域;没有顶层导入导出的文件可能作为脚本参与全局作用域和声明合并。namespace 则在类型空间和值空间中创建分层名称,主要用于传统全局脚本、无法使用模块加载器的环境,以及描述已经存在的全局库。现代前端工程通常应优先使用文件模块,而不是用命名空间模拟模块系统。
# 底层机制
模块以文件边界建立作用域,并通过显式的 import、export 形成依赖图。编译器和构建工具可以基于
