TypeScript · Senior · Frage 48 von 75
Wie typisiert man einen Reducer so, dass payload vom type der Action abhängt?
- 1Die Actions als über das Feld
typediskriminierte Union beschreiben - 2Ein Interface
Actionmit lauter optionalen Feldern anlegen - 3
payload: anysetzen und in jedemcaseprüfen
Antwort zeigen
Richtige Antwort: Die Actions als über das Feld type diskriminierte Union beschreiben
Erklärung
type Action = { type: 'add'; payload: Todo } | { type: 'remove'; payload: { id: string } } - in case 'add' weiß TS, dass payload ein Todo ist. Mit never in default bekommt man eine Vollständigkeitsprüfung. Redux Toolkit erzeugt solche Typen automatisch aus createSlice.