타입스크립트는 타입 추론 덕분에 함수 선언시 별다른 것을 하지 않아도 자동완성이 잘 될 때 참 편하네요. 아래와 같이 object 형태로 key value 로 지정한 경우에는 추론이 잘되는데 리턴 타입을 배열로 했을 경우 추론이 잘 되지 않아서 불편합니다. 명시적으로 지정하지 않고 간단히 하는 방법은 없는지 궁금해서 질문남깁니다.
object 리턴
function someFunction(){
const state = {
name: ''
};
const actions = {
login: async()=>{},
logout: async()=>{}
}
return [state, actions];
}
const [state, actions] = someFunction();
// 여기에서 state.n 을 누르면 추론에 의해 name이 자동완성 됩니다.
배열 리턴
function someFunction(){
const state = {
name: ''
};
const actions = {
login: async()=>{},
logout: async()=>{}
}
return [state, actions];
}
const [state, actions] = someFunction();
// 여기에서 state.n 을 누르면 추론에 의해 name이 자동완성 되지 않습니다.
이를 해결하기 위해 다음과 같이 명시적으로 타입을 지정해주면 잘 되는데 매번 지정하기 귀찮네요. 간단히 하는 방법은 없을까요?
interface State {
name: string
};
interface Actions {
login: ()=> Promise<any>
logout: ()=> Promise<any>
}
function someFunction():[State,Actions]{
const state = {
name: ''
};
const actions = {
login: async()=>{},
logout: async()=>{}
}
return [state, actions];
}
const [state, actions] = someFunction();
여기까지 읽어주셔서 감사합니다.