typescript 関数型とその戻り値について
Q&A
Closed
質問したいこと
typescriptの関数型について分からないことがあったのでお聞きしたいです。
type A = {
a: string
b: string
}
type B = () => A
const b: B = () => ({
a: '', b: '', c: ''
})
上記の関数bのところで実際はAの型を返していないのに
何故コンパイルエラーとならないかをお聞きしたいです。
というのも同じような形でReduxのReducerを作っている所で、
コンパイルエラーにならないことに気づき、質問した次第です。
type State = {
a: string
b: string
)
const reducer: Reducer<State, Action> = (state=initialState, action) => {
switch(action.type) {
case 'foo':
return {...state, c: ''}
default:
return state
}
}
戻り値の型を記載すれば、エラーになることはわかっているのですが、
書かなくてもエラーになってくれないかなと疑問に思っております。
const reducer: Reducer<State, Action> = (state=initialState, action): State => {
switch(action.type) {
case 'foo':
return {...state, c: ''}
default:
return state
}
}
よろしくお願いいたします