00191-medium-append-argument
Medium
arguments

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

예시 :

type Fn = (a: number, b: string) => number

type Result = AppendArgument<Fn, boolean> 
// 기대되는 결과는 (a: number, b: string, x: boolean) => number 입니다.

이 문제는 @maciejsikora가 작성한 원문 글에서 발췌했습니다.

Loading...
import type { Equal, Expect } from '@type-challenges/utils'

type Case1 = AppendArgument<(a: number, b: string) => number, boolean>
type Result1 = (a: number, b: string, x: boolean) => number

type Case2 = AppendArgument<() => void, undefined>
type Result2 = (x: undefined) => void

type cases = [
  Expect<Equal<Case1, Result1>>,
  Expect<Equal<Case2, Result2>>,
  // @ts-expect-error
  AppendArgument<unknown, undefined>,
]