Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
# 第7章:模块与命名空间

## ES6 模块语法(import/export)

### 1. 模块的基本概念
在 TypeScript 中,模块是组织和封装代码的重要方式。ES6 模块语法(`import` 和 `export`)是 JavaScript 的官方标准,TypeScript 完全支持这一语法。模块允许你将代码分割成多个文件,每个文件可以导出(`export`)部分功能,供其他文件导入(`import`)使用。

### 2. 导出(Export)
#### 2.1 命名导出(Named Exports)
命名导出允许你从一个模块中导出多个值,每个值都有一个名称。

```typescript
// math.ts
export const PI = 3.14159;
export function add(a: number, b: number): number {
    return a + b;
}

2.2 默认导出(Default Export)

每个模块可以有一个默认导出,通常用于导出模块的主要功能。

// calculator.ts
export default class Calculator {
    add(a: number, b: number): number {
        return a + b;
    }
}

3. 导入(Import)

3.1 导入命名导出

使用 import { ... } from 'module' 语法导入命名导出。

// app.ts
import { PI, add } from './math';
console.log(PI); // 3.14159
console.log(add(2, 3)); // 5

3.2 导入默认导出

默认导出可以使用任意名称导入。

// app.ts
import Calculator from './calculator';
const calc = new Calculator();
console.log(calc.add(2, 3)); // 5

3.3 导入所有导出

使用 import * as alias from 'module' 导入模块的所有导出。

// app.ts
import * as math from './math';
console.log(math.PI); // 3.14159
console.log(math.add(2, 3)); // 5

4. 重新导出(Re-exporting)

模块可以重新导出其他模块的内容,通常用于组织代码或创建库的入口文件。

// utils.ts
export { PI, add } from './math';
export { default as Calculator } from './calculator';

5. 动态导入(Dynamic Imports)

动态导入允许你在运行时按需加载模块,返回一个 Promise。

// app.ts
async function loadMath() {
    const math = await import('./math');
    console.log(math.add(2, 3)); // 5
}
loadMath();

6. 模块的兼容性

TypeScript 支持多种模块系统(如 CommonJS、AMD、UMD 等),但推荐使用 ES6 模块语法。在 tsconfig.json 中,可以通过 module 选项指定模块系统:

{
    "compilerOptions": {
        "module": "ES6" // 或 "CommonJS"、"AMD" 等
    }
}

7. 总结

ES6 模块语法是 TypeScript 中组织代码的核心方式。通过 export 和 import,你可以清晰地定义模块的边界,提高代码的可维护性和复用性。动态导入和重新导出进一步增强了模块的灵活性。

Last Updated:: 3/27/25, 10:50 AM