работает?
interface Action {
type: string
}
const types = {
add: "@scope/add",
reset: "@scope/reset",
}
class AddAction implements Action {
readonly type = types.add
constructor(public readonly payload: number) {}
}
class ResetAction implements Action {
readonly type = types.reset
}
type ScopeAction = AddAction | ResetAction
const initialState: number = 0
function reducer(
state: number = initialState,
action: ScopeAction,
) {
switch(action.type) {
case types.add: {
return state + action.payload
}
case types.reset: {
return initialState
}
}
}
вдохновлено ngrx или чем-то другим? никогда не понимал, зачем нужен этот оверхед с implements, конструктором и readonly пропертями
Выглядит что с типизацией приезжает очень много абстракции
Обсуждают сегодня