1- import { combineReducers , createStore , applyMiddleware , compose } from 'redux' ;
1+ import { combineReducers , createStore , applyMiddleware , compose , Middleware , ReducersMapObject , GenericStoreEnhancer , StoreCreator , Reducer , Store } from 'redux' ;
22import { asyncMiddleware } from '../utils/asyncMiddleware'
33
44
55export class StoreBuilder < StoreType > {
66
7- private middlewares :Redux . Middleware [ ] ;
8- private reducers :Redux . ReducersMapObject ;
7+ private middlewares :Middleware [ ] ;
8+ private reducers :ReducersMapObject ;
99private initialState :StoreType ;
10- private enhancer :Redux . GenericStoreEnhancer ;
10+ private enhancer :GenericStoreEnhancer ;
1111
1212constructor ( ) {
1313this . middlewares = [ asyncMiddleware ] ;
1414this . reducers = { } ;
1515this . initialState = { } as StoreType ;
16- this . enhancer = ( f :Redux . StoreCreator ) => f ;
16+ this . enhancer = ( f :StoreCreator ) => f ;
1717}
1818
19- public withMiddleware ( middleware :Redux . Middleware ) {
19+ public withMiddleware ( middleware :Middleware ) {
2020this . middlewares . push ( middleware ) ;
2121return this ;
2222}
@@ -26,21 +26,21 @@ export class StoreBuilder<StoreType> {
2626return this ;
2727}
2828
29- public withReducer < S > ( name :string , reducer :Redux . Reducer < S > ) {
29+ public withReducer < S > ( name :string , reducer :Reducer < S > ) {
3030this . reducers [ name ] = reducer ;
3131return this ;
3232}
3333
34- public withReducersMap ( reducers :Redux . ReducersMapObject ) {
34+ public withReducersMap ( reducers :ReducersMapObject ) {
3535for ( let reducer in reducers ) {
3636this . reducers [ reducer ] = reducers [ reducer ] ;
3737}
3838return this ;
3939}
4040
41- public withEnhancer ( enhancer :Redux . GenericStoreEnhancer ) {
41+ public withEnhancer ( enhancer :GenericStoreEnhancer ) {
4242let preEnhancer = this . enhancer ;
43- this . enhancer = ( f :Redux . StoreCreator ) => enhancer ( preEnhancer ( f ) ) ;
43+ this . enhancer = ( f :StoreCreator ) => enhancer ( preEnhancer ( f ) ) ;
4444return this ;
4545}
4646
@@ -51,6 +51,6 @@ export class StoreBuilder<StoreType> {
5151let composer = compose ( middlewares , this . enhancer ) ( createStore ) ;
5252let store = composer ( reducers , this . initialState ) ;
5353
54- return store as Redux . Store < StoreType > ;
54+ return store as Store < StoreType > ;
5555}
5656}