TypeScript, 제네릭(Generic) 함수에 대한 타입

다음과 같은 제니릭 함수가 있습니다.

function identity<T>(arg: T): T {
  return arg;
}

상기 함수에 대한 타입은 어떻게 정의할 수 있을까.. 3가지 정도가 가능합니다. 먼저…

let myIdentity1: <T>(arg: T) => T = identity;

다음은 객체 리터럴 타입의 함수 호출 시그니처 방식입니다.

let myIdentity2: { <T>(arg: T): T } = identity;

다음은 인터페이스 방식입니다.

interface GenericIdentityFn1 {
  <T>(arg: T): T;
}
let myIdentity3: GenericIdentityFn1 = identity;

interface GenericIdentityFn2<T> {
  (arg: T): T;
}
let myIdentity4: GenericIdentityFn2<string> = identity;

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다