如果在一个模块之中,先输入后输出同一个模块,import
语句可以与 export
语句写在一起。
从 module
模块整体导入后,直接完整导出。
export * from 'module'
从 module
模块导入 foo
和 bar
,并直接导出这两个接口。
export { foo, bar } from 'module'// 可以理解为import { foo, bar } from 'module'export { foo, bar }
实际上,这样的写法只是相当于对外转发了这两个接口,当前模块不能直接使用这两个接口。
模块导入的接口重命名,从 module
导入 foo
接口,并以 newFoo
的名义导出。
export { foo as newFoo } from 'module'
export { default } from 'module'
export { foo as default } from './module'// 等同于import { foo } from './module'export default foo
export { default as foo } from './module'
下面三种写法,没有对应的复合写法:
// 命名模块重命名转发import * as foo from './module'// 默认模块转发import foo from './module'// 整体和部分模块共同转发import foo , { namedFoo } from './module'
为了做到形式的对称,现在有提案,提出补上这三种复合写法。
export * as foo from './module'export foo from './module'export foo , { namedFoo } from './module'