10 模块与命名空间

模块与命名空间 #

模块和命名空间是 TypeScript 中组织代码的重要方式,帮助管理大型代码库。

基本概念 #

模块使用 import 和 export 关键字实现代码分割和复用。命名空间(namespace)用于分组相关代码,避免全局命名冲突。

使用场景 #

  • 在大型项目中,将代码拆分为模块,提高可维护性。
  • 使用命名空间封装内部工具函数。
  • 与 ES 模块结合,实现树摇优化。

示例代码 #

模块示例:

// math.ts
export function add(a: number, b: number): number {
  return a + b;
}

// main.ts
import { add } from "./math";
console.log(add(1, 2));

命名空间示例:

namespace Geometry {
  export function area(radius: number): number {
    return Math.PI * radius * radius;
  }
}
console.log(Geometry.area(5));

最佳实践 #

  • 优先使用 ES 模块而非命名空间。
  • 配置 tsconfig.json 中的 module 选项。
  • 避免全局命名空间污染。