TypeScript中如何正确导出模块所有成员?批量导出Declarations.ts成员方法
在TypeScript中批量导出模块所有成员的正确方式
嘿,这个问题问得好!确实不用费劲逐个写export type A = ...这种重复代码,有两种简洁的方式可以批量导出模块成员,分场景来看:
场景1:在Declarations.ts内部批量导出所有类型
如果你的Declarations.ts里已经定义了一堆类型,但不想给每个类型都加export前缀,可以在文件末尾用批量类型导出语句一次性导出所有需要对外暴露的类型:
// Declarations.ts type A = {}; type B = {}; interface C { name: string }; // 一次性导出所有类型/接口 export type { A, B, C };
这样就不用在每个类型前面都写export,只需要最后统一声明要导出的成员即可。
场景2:在其他文件中批量导出Declarations.ts的所有成员
如果想在另一个入口文件(比如index.ts)里把Declarations.ts的所有导出成员打包对外暴露,直接用模块重导出语法:
如果Declarations.ts只有类型/接口(没有函数、变量等值)
用类型专属的重导出更严谨:
// index.ts // 仅导出目标文件的所有类型成员 export type * from './Declarations';
如果Declarations.ts同时包含类型和值(比如函数、变量)
用通用重导出可以同时导出所有类型和值:
// index.ts // 导出目标文件的所有类型和值成员 export * from './Declarations';
这样不管是类型还是值,都会被一次性导出,完全不用逐个列举。
需要注意的一点是:如果Declarations.ts里的成员没有被显式导出(比如没加export也没在export type {}里声明),外部是无法访问到这些成员的,所以第一步还是要确保你想导出的成员在Declarations.ts里是可导出的状态哦。
内容的提问来源于stack exchange,提问作者Hivaga
相关产品推荐
相关产品推荐

