✍ 공부/TypeScript

[type-challenges] Append Argument

Po_tta_tt0 2023. 6. 26. 07:40
반응형

문제

함수 타입 Fn과 어떤 타입 A가 주어질 때 Fn의 인수와 A를 마지막 인수로 받는 Fn과 동일한 함수 유형인 G를 생성하세요.

설명

type AppendArgument<Fn, A> = Fn extends (...args: infer R) =>infer T ? (...args:[...R,A])=>T : never

우와...
함수 Fn은 args가 몇 개로 정해지지 않았기 때문에 어떻게 확장할까 고민했는데

(...args:infer R) => infer T ✨
로 간단하게 사용할 수 있다는 것을 알았다.

그 다음은 다른 문제들과 같다.

또 Fn이 저 ✨을 extends하지 않을 시 never을 반환한다
ex

type t = AppendArgument<number, boolean> // never
반응형