在 TypeScript 中,创建和组织库(library)的结构非常重要,它直接影响到库的可维护性、可用性以及用户的使用体验。下面详细介绍如何设计和组织 TypeScript 库的结构。
1. 基本结构
一个典型的 TypeScript 库通常包含以下基本元素:
- 源代码文件夹(src):存放 TypeScript 源码文件。
- 编译输出文件夹(dist 或 lib):存放编译后的 JavaScript 文件(如果需要发布给用户)。
- 类型声明文件夹(types 或 typings):存放 TypeScript 声明文件(
.d.ts
)。
2. 设计原则和最佳实践
2.1. 使用 ES 模块
推荐使用 ES 模块作为默认的模块格式,因为它提供了静态分析、树摇(去除未使用代码)和更清晰的语法。如果需要兼容 CommonJS(例如在 Node.js 中使用),可以通过工具进行转换或使用条件导出。
// Example: myModule.ts
export function foo() { /* function implementation */ }
export const bar = 42;
2.2. 利用命名空间和模块
- 命名空间(Namespace):用于将相关的类型和函数组织在一起,但在现代 TypeScript 开发中,推荐使用 ES 模块来代替命名空间。
// Example: myNamespace.ts namespace MyNamespace { export function foo