또한, 타입 매개변수의 개수와 타입 인수의 개수가 일치하지 않으면 에러가 발생합니다.
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>;