Avatar ·

Wie man Typen für useState in React mit TypeScript richtig angibt

Hallo Kollegen! Ich habe angefangen, TypeScript in React zu lernen, und bin sofort auf ein Problem mit der Typisierung des useState-Hooks gestoßen. Ich habe eine einfache Komponente mit einem Formular, in dem ich ein Objekt mit den Feldern name und age speichern muss. So habe ich es versucht: ```typescript const [user, setUser] = useState({ name: '', age: 0 }); ``` Es scheint zu funktionieren, aber wenn ich diesen State an eine andere Komponente oder Funktion übergeben möchte, beschwert sich TypeScript. Dann habe ich versucht, den Typ explizit anzugeben: ```typescript interface User { name: string; age: number; } const [user, setUser] = useState({ name: '', age: 0 }); ``` Jetzt funktioniert es, aber ich verstehe nicht: Muss ich den Typ immer explizit angeben? Und wenn mein State ein Array ist? Oder wenn der State null sein kann? Ich habe Folgendes versucht: ```typescript const [items, setItems] = useState([]); // TypeScript leitet never[] ab, und ich kann keine Elemente hinzufügen! ``` Und noch eine Frage: Wie typisiere ich die setUser-Funktion richtig, wenn ich sie an eine Kindkomponente übergebe? Ich habe versucht, `setUser:` zu schreiben: