如何将默认导出转为命名导出?utils目录重导出问题咨询
将默认导出转为命名导出的正确做法
当然可以实现把其他模块的默认导出作为命名导出统一抛出的需求!你之前尝试的语法不符合ES模块的规范,咱们用两种正确的方式来解决:
方法一:简洁的重导出语法(推荐)
ES2020及以后支持直接将目标模块的默认导出映射为命名导出,语法如下:
export { default as Constants } from './Constants';
这样就把./Constants模块里的默认导出,以Constants这个命名导出的形式,从你的utils/index.js里抛出去了。
方法二:先导入再导出
如果需要兼容更老的环境,也可以拆分两步来做:先把目标模块的默认导出导入进来,再作为命名导出抛出:
// 先导入Constants模块的默认导出,命名为Constants import Constants from './Constants'; // 再将其作为命名导出抛出 export { Constants };
结合你现有代码的示例
把这个写法融入你现有的utils/index.js里,最终代码会是这样:
// 将Constants模块的默认导出转为命名导出Constants export { default as Constants } from './Constants'; // 导出Constants模块的所有命名导出(如果该模块有命名导出的话) export * from './Constants'; // 导出Time模块的TIME命名导出 export { TIME } from './Time';
之后在应用的其他文件里,你就可以直接通过import { Constants, TIME } from './utils'来获取对应的内容啦~
内容的提问来源于stack exchange,提问作者mancristiana
相关产品推荐
相关产品推荐

