createReducer
Redux パターンに基づいた reducer ベースの状態管理コンテナを作成します。 アクションをディスパッチして reducer 関数に従い状態を更新します。
const [state, dispatch] = createReducer( (s, action: Readonly<{ type: 'increment' } | { type: 'decrement' }>) => { switch (action.type) { case 'increment': return s + 1; case 'decrement': return s - 1; } }, 0,);
const stateHistory: number[] = [];
state.subscribe((value: number) => { stateHistory.push(value);});
assert.deepStrictEqual(stateHistory, [0]);
dispatch({ type: 'increment' }); // logs: 1
assert.deepStrictEqual(stateHistory, [0, 1]);
dispatch({ type: 'increment' });
dispatch({ type: 'decrement' });
assert.deepStrictEqual(stateHistory, [0, 1, 2, 1]);