当前位置: 首页 > news >正文

TypeScript的export用法示例

在 TypeScript 中,export 用于将模块中的变量、函数、类、类型等暴露给外部使用。export 语法允许将模块化的代码分割并在其他文件中导入。

1. 命名导出(Named Export)

命名导出是 TypeScript 中最常见的一种导出方式,它允许你导出多个实体,导入时需要使用相同的名字。

语法

1
export { <entity1>, <entity2>, ... };

或者直接在声明时进行导出:

1
export <entity>;

示例

1
2
3
4
5
6
7
8
9
10
// math.ts
export const PI = 3.14159;
export function add(x: number, y: number): number {
    return x + y;
}
export class Calculator {
    static multiply(x: number, y: number): number {
        return x * y;
    }
}

然后在其他文件中导入:

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

部分导入

你也可以选择只导入你需要的部分:

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

别名导入

你可以为导入的命名实体指定别名:

1
2
3
4
// app.ts
import { add as sum, Calculator as Calc } from './math';
console.log(sum(2, 3));  // 5
console.log(Calc.multiply(2, 3));  // 6

2. 默认导出(Default Export)

默认导出用于导出模块中的单个实体,@www.xuepai.net每个模块只能有一个默认导出。在导入时不需要使用花括号,可以自定义导入名称。

语法

1
export default <entity>;

示例

1
2
3
4
// greet.ts
export default function greet(name: string): string {
    return `Hello, ${name}!`;
}

然后在其他文件中导入并使用:

1
2
3
// app.ts
import greet from './greet';
console.log(greet("Alice"));  // Hello, Alice!

3. 混合使用命名导出与默认导出

你可以在一个模块中同时使用命名导出和默认导出:

1
2
3
4
5
6
7
8
9
10
// utils.ts
export function add(x: number, y: number): number {
    return x + y;
}
export function subtract(x: number, y: number): number {
    return x - y;
}
export default function multiply(x: number, y: number): number {
    return x * y;
}

然后可以这样导入:

1
2
3
4
5
// app.ts@www.haoshilao.net
import multiply, { add, subtract } from './utils';
console.log(multiply(2, 3));  // 6
console.log(add(2, 3));       // 5
console.log(subtract(5, 3));  // 2

4. 重命名导出(Export Aliases)

你可以在导入时或导出时使用别名。

导出时重命名

1
2
3
4
5
6
7
// math.ts
const PI = 3.14159;
function add(x: number, y: number): number {
    return x + y;
}
// 使用 `as` 来重命名导出的符号
export { PI as PiValue, add as addNumbers };

导入时重命名

1
2
3
4
// app.ts
import { PiValue, addNumbers } from './math';
console.log(PiValue);       // 3.14159
console.log(addNumbers(5, 3));  // 8

5. 导出整个模块(Re-export)

你可以将另一个模块的所有内容导出到当前模块中。这对于模块的组合和封装非常有用。

示例

1
2
3
4
5
6
7
8
9
10
11
// math.ts
export const PI = 3.14159;
export function add(x: number, y: number): number {
    return x + y;
}
// geometry.ts
export * from './math'// 将math模块的所有导出都重新导出
// app.ts
import { PI, add } from './geometry';
console.log(PI);  // 3.14159
console.log(add(2, 3));  // 5

6. 导出类型(Type Export)

除了导出变量、函数和类,TypeScript 还允许导出类型别名、接口等类型定义。

示例

1
2
3
4
5
6
7
8
9
10
// types.ts
export interface Person {
    name: string;
    age: number;
}
export type Point = { x: number; y: number };
// app.ts
import { Person, Point } from './types';
const john: Person = { name: "John", age: 30 };
const point: Point = { x: 10, y: 20 };

7. export = 和 import = require() 的用法

export = 和 import = require() 语法主要用于与旧版 JavaScript 模块(如 CommonJS)兼容。当你希望以 CommonJS 风格导出模块时,可以使用 export =

示例

1
2
3
4
5
6
7
// logger.ts
class Logger {
    log(message: string) {
        console.log(message);
    }
}
export = Logger;
1
2
3
4
// app.ts
import Logger = require('./logger');
const logger = new Logger();
logger.log('Hello, World!');

这种用法较少见,好问提示因为大多数 TypeScript 代码会使用 export 和 import 语法。

总结

  • export 用于将模块中的代码暴露出去,可以导出函数、类、常量、类型等。
  • export default 用于导出模块中的单个实体,导入时不需要花括号,并且可以自定义导入名称。
  • 命名导出与默认导出 可以结合使用,一个模块可以有多个命名导出和一个默认导出。
  • export = 用于与 CommonJS 等旧版模块系统兼容。

export 和 import 使得 TypeScript 支持模块化,帮助你组织和分离代码,提高代码的可维护性和复用性。

http://www.jsqmd.com/news/194720/

相关文章:

  • 14.C++入门:vector|手撕vector
  • 技术文章大纲:Bug悬案侦破大会
  • 张吕敏长视频生成新技术:20秒视频历史压缩成5000个Token,消费级显卡也能跑
  • MBA必看!8个降AI率工具测评榜单
  • 高效清理临时文件,释放磁盘空间
  • 提示工程架构师必收藏:安全标准实施框架
  • 2026辣椒蘸料品牌top5推荐榜,优质工厂及供应商深度解析/选择指南 - 全局中转站
  • 系统限制对线程数的设定有哪些具体影响
  • 选择可信数据空间安全服务商:源堡科技以风险管控能力破局
  • RocketMQ 架构与术语详解
  • 多线程程序应该开多少线程
  • 华为OD机考双机位C卷 - 字符串计数匹配 (Java Python JS C/C++ GO )
  • 2026最新延吉韩式烤肉餐厅top5推荐!延吉本地延边大学等地加盟餐饮品牌深度解析及选择指南 - 全局中转站
  • 友链测试
  • 2026年1月火锅底料推荐与评价:从家庭厨房到餐饮后厨 - 速递信息
  • 从基础到进阶,助你成为AI大模型专家_2025最新AI大模型学习路线:(非常详细)
  • vp 2025冬季PAT甲级
  • HISTFILE 介绍
  • 狂想:2026-1-3我的原创思考:意识作为“生态聚落的目的性涌现”
  • 35岁程序员转行大模型:前景分析与实战路径,助你把握技术红利_35岁程序员转行大模型前景分析与转型指南
  • C和汇编混合编程
  • 安益日化:品牌推荐高品质洗护用品ODM代加工 - 速递信息
  • Availability(可用性)与高可用架构 内容的结构化知识点汇总
  • Agentic AI合规经验:提示工程架构师如何打造个人品牌?
  • CF830E Perpetual Motion Machine
  • 2026油泼辣子品牌top5推荐榜,优质工厂及供应商深度解析/选择指南 - 全局中转站
  • 【Unity 实用工具篇】| UX Tool 工具 快速上手使用,提高日常开发效率
  • 高档香薰香氛生产工厂排名:安益日化BSCI认证全链生产领跑 - 速递信息
  • 102302114_比山布努尔兰_作业2
  • .NET周刊【12月第1期 2025-12-07】