2016-08-18 7 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

と交換しますCounterStateとして機能しますが、リセットの場合、数値を返そうとしています(state.count=0は右の数値に評価されるので、0を返します)

は、代わりに、一定の初期状態

case Types.RESET: 
    return initialState; 

を使用するか、あなたは状態の他のプロパティを持っている場合、あなたは

case Types.RESET: 
    return assign({}, state, { 
     count : 0 
    }); 
を保持したい、ここにも割り当てを使用していずれかの状態オブジェクトを返す必要があります
0

あなたは出力パラメータを関数は、CounterStateですが、ここ数を返すようにしようとしている。

return state.count=0; 

ちょうどあなたがあなたの戻り値の型を指定している

state.count = 0; 
return state; 
関連する問題