求助:非默认导出的星号式重导出正确语法
非默认导出的重导出正确语法
你之前的写法多了一对不必要的括号,这就是导致错误的原因。针对不同的非默认导出重导出场景,正确的语法如下:
1. 将模块所有导出重命名为一个命名导出
这是你尝试实现的场景,正确写法不需要包裹括号:
export * as WhatEver from './whatever';
这样就能把./whatever模块里的所有导出,统一挂载到WhatEver这个命名导出上,使用的时候可以通过import { WhatEver } from '你的模块路径'来访问,再通过WhatEver.xxx调用具体的导出项。
2. 重导出单个非默认导出并自定义名称
如果只需要重导出原模块里的某个特定命名导出,比如原模块有个foo导出,你可以这样写:
export { foo as RenamedFoo } from './whatever';
3. 直接重导出所有导出(不重命名)
如果不需要重命名,只想把原模块的所有导出直接透传出去,用这个语法:
export * from './whatever';
4. 同时重导出默认和命名导出
要是需要在同一个语句里处理默认导出和命名导出的重导出,可以合并写法:
export { default as DefaultExport, foo as RenamedFoo } from './whatever';
内容的提问来源于stack exchange,提问作者Stephan Kirchhoff
相关产品推荐
相关产品推荐

