Если ваш фрагмент - stati c, т.е. вы знаете, какие свойства он содержит во время компиляции, вы можете использовать утилиту Pick
TypeScript:
// Example definition
interface State {
list: ListState;
navigation: NavigationState;
}
// If it only has one state property
const slice: Pick<State, 'list'> = {
list: {} // Your list state
};
// If it has multiple state properties
const slice: Pick<State, 'list' | 'navigation'> = {
list: {}, // Your list state,
navigation: {} // Your navigation state
};
Если вы знаете, что он содержит только некоторые из свойств State
, и вы не знаете, какие из них, вы можете просто использовать Partial
:
const slice: Partial<State> = {
list: {} // Your list state
}
В любом случае вы должны иметь возможность:
// If oldState is of type State
const newState: State = { ...oldState, ...slice };