UNPKG

mattermost-redux

Version:

Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client

51 lines (45 loc) 1.71 kB
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. // This is copied from an older version of redux-thunk /* eslint-disable */ import { Action, ActionCreatorsMapObject, UnknownAction } from 'redux' import { ThunkAction } from 'redux-thunk' /** * Globally alter the Redux `bindActionCreators` and `Dispatch` types to assume * that the thunk middleware always exists, for ease of use. * This is kept as a separate file that may be optionally imported, to * avoid polluting the default types in case the thunk middleware is _not_ * actually being used. * * To add these types to your app: * import 'redux-thunk/extend-redux' */ declare module 'redux' { /** * Overload for bindActionCreators redux function, returns expects responses * from thunk actions */ function bindActionCreators< ActionCreators extends ActionCreatorsMapObject<any> >( actionCreators: ActionCreators, dispatch: Dispatch ): { [ActionCreatorName in keyof ActionCreators]: ReturnType< ActionCreators[ActionCreatorName] > extends ThunkAction<any, any, any, any> ? ( ...args: Parameters<ActionCreators[ActionCreatorName]> ) => ReturnType<ReturnType<ActionCreators[ActionCreatorName]>> : ActionCreators[ActionCreatorName] } /* * Overload to add thunk support to Redux's dispatch() function. * Useful for react-redux or any other library which could use this type. */ export interface Dispatch<A extends Action = UnknownAction> { <ReturnType = any, State = any, ExtraThunkArg = any>( thunkAction: ThunkAction<ReturnType, State, ExtraThunkArg, A> ): ReturnType } }