TypeScript · Senior · Запитання 48 з 75
Як типізувати редʼюсер, щоб payload залежав від type дії?
- ✓Правильна відповідь: Описати дії дискримінованим union за полем
type - 2Зробити
payload: anyі перевіряти його в кожномуcase - 3Створити один інтерфейс
Actionз усіма полями необов'язковими
Пояснення
type Action = { type: 'add'; payload: Todo } | { type: 'remove'; payload: { id: string } } - у case 'add' TS знає, що payload - Todo. З never у default отримуємо перевірку повноти. Redux Toolkit генерує такі типи автоматично з createSlice.