Last active
November 16, 2015 19:18
-
-
Save zerkalica/93b0f4fdb5f4d6480569 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import type {ReducerFn} from '../../../decorators' | |
import {generateReducer} from '../../../decorators' | |
class Action {} | |
class TodoAddMultipleAction extends Action {} | |
class TodoAddMultipleErrorAction extends Action {} | |
class TodoAddErrorAction extends Action {} | |
class TodoCompleteErrorAction extends Action {} | |
class TodoDestroyErrorAction extends Action {} | |
class A {} | |
class B {} | |
type AnyAction = Object & Action | |
class Example { | |
reduce(a: A, action: AnyAction, b: B): A { | |
switch (action.constructor) { | |
default: | |
return a | |
} | |
} | |
addMultiple(a: A, action: TodoAddMultipleAction, b: B): A { | |
return a | |
} | |
addError( | |
a: A, | |
{error}: TodoAddMultipleErrorAction | |
| TodoAddErrorAction | |
| TodoCompleteErrorAction | |
| TodoDestroyErrorAction, | |
b: B | |
): A { | |
return a | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import type {ReducerFn} from '../../../decorators' | |
import {generateReducer} from '../../../decorators' | |
class Action {} | |
class TodoAddMultipleAction extends Action {} | |
class TodoAddMultipleErrorAction extends Action {} | |
class TodoAddErrorAction extends Action {} | |
class TodoCompleteErrorAction extends Action {} | |
class TodoDestroyErrorAction extends Action {} | |
class A {} | |
class B {} | |
type AnyAction = Object & Action | |
class Example { | |
reduce(a: A, action: AnyAction, b: B): A { | |
switch(action.constructor) { | |
case TodoAddMultipleAction: | |
return this.addMultiple(a, action, b) | |
case TodoAddMultipleErrorAction: | |
case TodoAddErrorAction: | |
case TodoCompleteErrorAction: | |
case TodoDestroyErrorAction: | |
return this.addError(a, action, b) | |
default: | |
return a | |
} | |
} | |
addMultiple(a: A, action: TodoAddMultipleAction, b: B): A { | |
return a | |
} | |
addError( | |
a: A, | |
{error}: TodoAddMultipleErrorAction | |
| TodoAddErrorAction | |
| TodoCompleteErrorAction | |
| TodoDestroyErrorAction, | |
b: B | |
): A { | |
return a | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment