인자로 1개이상의 함수를 받아서 조합하는 함수가 있습니다…
0번째 함수와 1 ~ n 번째 함수가 서로 다른 타입이라면
type FuncOne; // 대충 함수타입
type FuncTwo; // 대충 다른 함수 타입
const hoc = (func: FuncOne, ...funcs: FuncTwo[]) => {
// 사용 예: return funcs.reduce((acc, curr) => func(curr), [])
}
이럴수 있잖아요?
근데 이게 0 ~ (n-1) 함수와, n번째 (즉 맨 마지막) 함수가 서로 다를땐 어떻게 타입지정을 해야할까요?
const hocReverse = (...params: ?????) => {
const func: FuncOne = params.slice(-1)[0];
const funcs: FuncTwo[] = params.slice(0, -1);
// 사용 예: return funcs.reduce((acc, curr) => func(curr), [])
}
이런식으로 하려는데 타입을 어떻게 해야할지 모르겠습니다…
우선 Array<FuncOne|FuncTwo> 는 안되네요… 생각해보니 안되는게 맞는거같고요