Comment typer correctement useState dans React avec TypeScript ?
Bonjour, collègues ! J'ai commencé à étudier TypeScript dans React et j'ai immédiatement rencontré un problème de typage du hook useState.
J'ai un composant simple avec un formulaire où je dois stocker un objet avec les champs name et age. Voici comment j'essaie de le faire :
```typescript
const [user, setUser] = useState({ name: '', age: 0 });
```
Cela semble fonctionner, mais quand je veux passer ce state à un autre composant ou à une fonction, TypeScript se plaint. Ensuite, j'ai essayé de spécifier explicitement le type :
```typescript
interface User {
name: string;
age: number;
}
const [user, setUser] = useState({ name: '', age: 0 });
```
Maintenant ça marche, mais je ne comprends pas : faut-il toujours écrire le type explicitement ? Et si mon state est un tableau ? Ou si le state peut être null ? J'ai essayé ceci :
```typescript
const [items, setItems] = useState([]);
// TypeScript déduit never[], et je ne peux pas ajouter d'éléments !
```
Et une autre question : comment typer correctement la fonction setUser si je la passe à un composant enfant ? J'ai essayé d'écrire `setUser: