TypeScript: чем отличается export default от export и когда что использовать?
```html
مرحباً بالجميع! بدأت مؤخراً في تعلم 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'`. كما يمكن استيراد الافتراضي بدون أقواس معقوفة، بينما المسماة فقط في الأقواس المعقوفة. لماذا؟
والسؤال الرئيسي: متى يكون من الأفضل استخدام `export default` ومتى `export`؟ هل هناك قواعد أو أفضل الممارسات؟ يبدو أن في React غالباً ما يتم تصدير المكونات عبر `export default`، بينما الأدوات عبر المسماة.
```