Initial State support for reduceReducers.

This commit is contained in:
Dalius Dobravolskas
2019-01-28 12:00:40 +02:00
parent 3317a1c2cf
commit 3b59425df7
2 changed files with 254 additions and 5 deletions

View File

@@ -1,7 +1,81 @@
// Type definitions for reduce-reducers 0.1
// Type definitions for reduce-reducers 0.2
// Project: https://github.com/acdlite/reduce-reducers
// Definitions by: Huy Nguyen <https://github.com/huy-nguyen>
// Dalius Dobravolskas <https://github.com/daliusd>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
import { Reducer } from 'redux';
export default function reduceReducer<S>(r0: Reducer<S>, s: S | null): Reducer<S>;
export default function reduceReducer<S>(r0: Reducer<S>, r1: Reducer<S>, s: S | null): Reducer<S>;
export default function reduceReducer<S>(r0: Reducer<S>, r1: Reducer<S>, r2: Reducer<S>, s: S | null): Reducer<S>;
export default function reduceReducer<S>(
r0: Reducer<S>,
r1: Reducer<S>,
r2: Reducer<S>,
r3: Reducer<S>,
s: S | null,
): Reducer<S>;
export default function reduceReducer<S>(
r0: Reducer<S>,
r1: Reducer<S>,
r2: Reducer<S>,
r3: Reducer<S>,
r4: Reducer<S>,
s: S | null,
): Reducer<S>;
export default function reduceReducer<S>(
r0: Reducer<S>,
r1: Reducer<S>,
r2: Reducer<S>,
r3: Reducer<S>,
r4: Reducer<S>,
r5: Reducer<S>,
s: S | null,
): Reducer<S>;
export default function reduceReducer<S>(
r0: Reducer<S>,
r1: Reducer<S>,
r2: Reducer<S>,
r3: Reducer<S>,
r4: Reducer<S>,
r5: Reducer<S>,
r6: Reducer<S>,
s: S | null,
): Reducer<S>;
export default function reduceReducer<S>(
r0: Reducer<S>,
r1: Reducer<S>,
r2: Reducer<S>,
r3: Reducer<S>,
r4: Reducer<S>,
r5: Reducer<S>,
r6: Reducer<S>,
r7: Reducer<S>,
s: S | null,
): Reducer<S>;
export default function reduceReducer<S>(
r0: Reducer<S>,
r1: Reducer<S>,
r2: Reducer<S>,
r3: Reducer<S>,
r4: Reducer<S>,
r5: Reducer<S>,
r6: Reducer<S>,
r7: Reducer<S>,
r8: Reducer<S>,
s: S | null,
): Reducer<S>;
export default function reduceReducer<S>(
r0: Reducer<S>,
r1: Reducer<S>,
r2: Reducer<S>,
r3: Reducer<S>,
r4: Reducer<S>,
r5: Reducer<S>,
r6: Reducer<S>,
r7: Reducer<S>,
r8: Reducer<S>,
r9: Reducer<S>,
s: S | null,
): Reducer<S>;
export default function reduceReducer<S>(...reducers: Array<Reducer<S>>): Reducer<S>;

View File

@@ -1,13 +1,188 @@
import {
Reducer,
Action,
Reducer,
Action,
} from 'redux';
import reduceReducers from 'reduce-reducers';
interface TestStore {
a: number;
b: string;
a: number;
b: string;
}
const firstReducer: (state: TestStore, action: Action) => TestStore = (a, b) => a;
const secondReducer: (state: TestStore, action: Action) => TestStore = (a, b) => a;
const finalReducer: (state: TestStore, action: Action) => TestStore = reduceReducers(firstReducer, secondReducer);
const finalReducerWithState: (state: TestStore, action: Action) => TestStore = reduceReducers(firstReducer, secondReducer, null);
const initialState: TestStore = {
a: 1,
b: '2',
};
const finalReducerWithInitialState: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
initialState);
const reducer02: (state: TestStore, action: Action) => TestStore = (a, b) => a;
const reducer03: (state: TestStore, action: Action) => TestStore = (a, b) => a;
const reducer04: (state: TestStore, action: Action) => TestStore = (a, b) => a;
const reducer05: (state: TestStore, action: Action) => TestStore = (a, b) => a;
const reducer06: (state: TestStore, action: Action) => TestStore = (a, b) => a;
const reducer07: (state: TestStore, action: Action) => TestStore = (a, b) => a;
const reducer08: (state: TestStore, action: Action) => TestStore = (a, b) => a;
const reducer09: (state: TestStore, action: Action) => TestStore = (a, b) => a;
const finalReducerWithInitialState02: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
initialState);
const finalReducerWithInitialState02null: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
null);
const finalReducerWithInitialState03: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
initialState);
const finalReducerWithInitialState03null: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
null);
const finalReducerWithInitialState04: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
initialState);
const finalReducerWithInitialState04null: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
null);
const finalReducerWithInitialState05: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
reducer05,
initialState);
const finalReducerWithInitialState05null: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
reducer05,
null);
const finalReducerWithInitialState06: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
reducer05,
reducer06,
initialState);
const finalReducerWithInitialState06null: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
reducer05,
reducer06,
null);
const finalReducerWithInitialState07: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
reducer05,
reducer06,
reducer07,
initialState);
const finalReducerWithInitialState07null: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
reducer05,
reducer06,
reducer07,
null);
const finalReducerWithInitialState08: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
reducer05,
reducer06,
reducer07,
reducer08,
initialState);
const finalReducerWithInitialState08null: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
reducer05,
reducer06,
reducer07,
reducer08,
null);
const finalReducerWithoutInitialState09: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
reducer05,
reducer06,
reducer07,
reducer08,
reducer09);
const finalReducerWithInitialState09: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
reducer05,
reducer06,
reducer07,
reducer08,
reducer09,
initialState);
const finalReducerWithInitialState09null: (state: TestStore, action: Action) => TestStore = reduceReducers(
firstReducer,
secondReducer,
reducer02,
reducer03,
reducer04,
reducer05,
reducer06,
reducer07,
reducer08,
reducer09,
null);