Avatar ·

TypeScript: export default 和 export 有什么区别?什么时候该用哪个?

大家好!我最近开始学习 TypeScript(之前写纯 JS),对导出方式感到困惑。似乎有两种方式:`export default` 和普通的 `export`。但我不明白什么时候该用哪个。 举个例子。我有一个文件 `user.ts`: ```typescript // user.ts export default class User { constructor(public name: string) {} } export function formatUser(user: User): string { return `User: ${user.name}`; } ``` 然后在另一个文件中导入: ```typescript // app.ts import User from './user'; // 这样能工作 import { formatUser } from './user'; // 这样也能工作 ``` 但我看到有些人写 `import * as UserModule from './user'`。而且 default 导入不需要花括号,而命名导入必须用花括号。为什么? 主要问题是:什么时候最好用 `export default`,什么时候用 `export`?有没有什么规则或 best practices?比如在 React 中,组件通常用 `export default` 导出,而工具函数用命名导出...