TypeScript : quelle est la différence entre export default et export et quand utiliser quoi ?
Bonjour à tous ! J'ai récemment commencé à étudier TypeScript (avant j'écrivais en JS pur) et je me suis perdu dans les exports. Apparemment, il y a deux façons : `export default` et simplement `export`. Mais je ne comprends pas quand utiliser l'un ou l'autre.
Voici un exemple. J'ai un fichier `user.ts` :
```typescript
// user.ts
export default class User {
constructor(public name: string) {}
}
export function formatUser(user: User): string {
return `User: ${user.name}`;
}
```
Et dans un autre fichier j'importe :
```typescript
// app.ts
import User from './user'; // ça marche
import { formatUser } from './user'; // ça marche aussi
```
Mais j'ai vu que certains écrivent `import * as UserModule from './user'`. Et on peut aussi importer default sans accolades, tandis que les imports nommés nécessitent des accolades. Pourquoi ?
Et la question principale : quand vaut-il mieux utiliser `export default` et quand `export` ? Y a-t-il des règles ou des best practices ? Apparemment dans React, on exporte souvent les composants avec `export default`, et les utilitaires avec des exports nommés.