ECMAScript 6是否支持`export * as 命名导出`语法?React Redux场景验证
回答:ES6及后续标准对
export * as namespace语法的支持 好问题!答案是肯定的,但有个关键细节需要明确:export * as FeatureSelector from './selectors'这个语法并非ES6(ES2015)原生支持,它是在**ECMAScript 2020(ES11)**中新增的聚合导出特性。不过现在这个语法已经被现代浏览器、Node.js(v14及以上版本)以及主流前端构建工具(Webpack、Vite、Babel等)广泛支持,完全可以用来简化你的React Redux项目代码。
两种写法的等价性
你原本的代码:
import * as FeatureSelector from './selectors' export { FeatureSelector }
和简化后的写法:
export * as FeatureSelector from './selectors'
功能完全一致——都是将./selectors模块中所有导出的成员,打包成一个名为FeatureSelector的命名空间对象,再从当前模块导出。
额外注意事项
- 如果你的项目需要兼容非常老旧的环境(比如IE11),可能需要通过Babel等转译工具处理这个语法;
- 在现代React/Redux项目中(这类项目通常依赖构建工具),直接使用这个简化语法不会有兼容性问题,能让代码更简洁直观。
内容的提问来源于stack exchange,提问作者CommCo
相关产品推荐
相关产品推荐

