더북(TheBook)

또한, 타입 매개변수의 개수와 타입 인수의 개수가 일치하지 않으면 에러가 발생합니다.

interface Zero extends Person<'zero'> {}
// Generic type 'Person<N, A>' requires 2 type argument(s).
interface Zero extends Person<'zero', 28> {}
interface Zero extends Person<'zero', 28, boolean> {}
// Generic type 'Person<N, A>' requires 2 type argument(s).

에러 메시지로 정확히 두 개의 타입 인수를 넣어야 함을 알립니다.

인터페이스뿐만 아니라 클래스와 타입 별칭, 함수도 제네릭을 가질 수 있습니다.

type Person<N, A> = {
  type: 'human',
  race: 'yellow',
  name: N,
  age: A,  
}
type Zero = Person<'zero', 28>;
type Nero = Person<'nero', 32>;
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.