export default 是 ES6 模块系统(ES Modules)中的语法,用于导出模块的默认值,这样其他文件可以更方便地导入这个模块。
在 TypeScript(TS)和 React(TSX)中,export default 常用于 导出组件、函数、类等,使得导入时可以自定义名称。
1. export default 基本用法
(1)导出默认值
// math.ts
export default function add(a: number, b: number): number {
  return a + b;
}
这里 add 函数是 默认导出,意味着导入时可以使用 任何名称。
(2)导入默认值
// main.ts
import sum from "./math";  // 可以用任何名称
console.log(sum(2, 3)); // 5
即使 math.ts 里导出的是 add,在 main.ts 中导入时可以随意命名为 sum。
2. export default VS export
除了 export default,ES6 还支持 命名导出(export),两者的主要区别如下:
| export default | export(命名导出) | |
|---|---|---|
| 导入时是否能更改名称 | ✅ 可以随意命名 | ❌ 必须用原名称或 {} | 
| 是否支持多个导出 | ❌ 只能有一个默认导出 | ✅ 可以有多个命名导出 | 
| 导入方式 | import anyName from 'module' | import { specificName } from 'module' | 
(1)命名导出 export
// utils.ts
export function add(a: number, b: number): number {
  return a + b;
}
export function subtract(a: number, b: number): number {
  return a - b;
}
导入时:
import { add, subtract } from "./utils"; // 必须用 { } 包裹
console.log(add(5, 3)); // 8
console.log(subtract(5, 3)); // 2
如果要更改名称,需要用 as:
import { add as sum } from "./utils";
console.log(sum(2, 3)); // 5
(2)export default 和 export 一起使用
// utils.ts
export default function multiply(a: number, b: number): number {
  return a * b;
}
export function divide(a: number, b: number): number {
  return a / b;
}
导入时:
import multiply, { divide } from "./utils";
console.log(multiply(2, 3)); // 6
console.log(divide(6, 2)); // 3
- multiply是默认导出 → 可以直接导入,不用- {}。
- divide是命名导出 → 必须用- {}。
3. 在 React (TSX) 组件中的应用
(1)导出 React 组件
// components/Button.tsx
import React from "react";
export default function Button() {
  return <button>Click me</button>;
}
(2)导入组件
// App.tsx
import Button from "./components/Button"; // 默认导入,名字随意
export default function App() {
  return <Button />;
}
这里 Button 组件是默认导出,导入时可以 随意命名(比如 MyButton):
import MyButton from "./components/Button";
总结
- export default导出模块的默认值,导入时可以随意命名。
- export命名导出,必须用- {}导入,名称必须匹配。
- export default每个文件只能有一个,但可以与- export同时存在。
- 在 React + TypeScript 项目中,export default常用于导出组件,如export default function MyComponent()。
你现在写的是 TSX 代码,在 export default 里导出的组件可以直接用 import 语法来使用!
 
                             
        