redux에서 type과 같은 역할이라고 생각하면 된다.
보통 두 개 중에 하나만 쓰는 것이 좋은데, 나같은 경우는 type을 주로 사용한다고 가정할 때 이런 식으로 활용이 가능하다.
const initialState = 0;
interface DepositAction {
type: "deposit";
payload: number;
}
interface WithdrawAction {
type: "withdraw";
payload: number;
}
interface bankruptAction {
type: "bankrupt";
}
type Action = DepositAction | WithdrawAction | bankruptAction;
const reducer = (state: number = initialState, action: Action) => {
switch (action.type) {
case "deposit": //interface에 있는 type을 인식함.
return state + action.payload;
case "withdraw":
return state - action.payload;
case "bankrupt":
return 0;
default:
return state;
}
};
export default reducer;