더북(TheBook)
  bind<A0, A1, A2, A3, A extends any[], R>(this: new (arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2, arg3: A3): new (...args: A) => R;
  bind<AX, R>(this: new (...args: AX[]) => R, thisArg: any, ...args: AX[]): new (...args: AX[]) => R;
}

bind 함수의 오버로딩이 13개나 됩니다. CallableFunction은 호출할 수 있는 함수를 의미하고, NewableFunctionnew를 붙여 호출할 수 있는 함수를 의미합니다. new를 붙여 호출할 수 있는 함수는 클래스를 의미합니다.

왜 이렇게 많은 오버로딩이 필요하게 되었는지 다양한 테스트 사례로 테스트해봅시다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.