2016-08-18 6 views
0

감속기를 쓰고 있는데 RESET을 수행하려면 state.count = 0을 사용하십시오. 그러나,이 날 number is not assignable to type CounterState 오류가 발생합니다. 내가 lodash의 할당 기능을 사용하고TypeScript 오류 번호를 할당 할 수 없습니다.

export interface CounterState { 
    count: number; 
}; 

const initialState: CounterState = { 
    count: 0 
}; 

export default function counter(state = initialState, action: Action): CounterState { 
    switch (action.type) { 
    case TYPES.INCREMENT: 
     return assign({}, state, { 
     count: state.count + 1 
     }); 
    case TYPES.DECREMENT: 
     return assign({}, state, { 
      count : state.count - 1 
     }); 
    case TYPES.RESET: 
     //error here 
     return state.count=0; 
    default: 
     return state; 
    } 
} 

:

여기 내 코드입니다. 감사합니다

답변

3

로 교체

return state.count=0; 

당신의 CounterState 함수로 사용하지만 리셋의 경우 숫자를 반환하려고합니다 (state.count=0은 오른쪽의 숫자로 계산되므로 0을 반환합니다)

대신 당신은 상수 초기 상태 (Initial)

case Types.RESET: 
    return initialState; 

을 사용하거나 상태에서 다른 속성이있는 경우, 당신은

case Types.RESET: 
    return assign({}, state, { 
     count : 0 
    }); 
을 보존하고자, 여기뿐만 아니라 할당을 사용 중 상태 개체를 반환해야합니다
0

당신은 출력 매개 변수가 CounterState입니다 기능,하지만 당신은 여기에 수를 반환하려고 : 당신이의 반환 형식 지정한

state.count = 0; 
return state; 
관련 문제