Enhance Redux props with ReturnType
The following example is built in the offical Redux documentation:
import { AppState } from './store'
import { SystemState } from './store/system/types'
import { ChatState } from './store/chat/types'
interface AppProps {
chat: ChatState
system: SystemState
}
const mapStateToProps = (state: AppState) => ({
system: state.system,
chat: state.chat
})
Here, SystemState
and ChatState
are imported and used manually.
But as AppState
is correctly typed, we can use our beloved ReturnType
instead:
import { AppState } from './store'
type AppProps = ReturnType<typeof mapStateToProps>
const mapStateToProps = (state: AppState) => ({
system: state.system,
chat: state.chat
})
Check out this CodeSandbox for a runnning example.