타입 매개변수에는 기본값(default)을 사용할 수 있습니다.
interface Person<N = string, A = number> {
type: 'human',
race: 'yellow',
name: N,
age: A,
}
type Person1 = Person;
// type Person1 = Person<string, number>
type Person2 = Person<number>;
// type Person2 = Person<number, number>
type Person3 = Person<number, boolean>;
// type Person3 = Person<number, boolean>
타입 매개변수 N과 A를 보면 = 연산자를 사용해서 각각 string, number 타입이 대입되어 있습니다. 타입 인수로 N과 A 자리에 타입을 제공하지 않으면 각각의 타입 매개변수는 기본값 타입이 됩니다.
Person1에서 N의 타입은 string, A의 타입은 number입니다. 어디까지나 기본값이므로 다른 타입을 명시적으로 넣었다면 그 타입이 됩니다. Person2에서는 N 자리에 number 타입을 넣었으므로 N의 타입은 number입니다. A는 타입을 제공하지 않았으므로 기본값인 number가 됩니다.