<aside> 📌 타입을 사용할 때 제네릭으로 프로퍼티의 타입을 지정할 수 있다.
</aside>
interface Person<N, A> {
type: 'human';
name: N;
age: A;
}
interface Eunji extends Person<'eunji', 28> {} // 리터럴 타입
interface Minji extends Person<'minji', 28> {}
interface 이름<타입 매개변수> {}
type 이름<타입 매개변수> {}
class 이름<타입 매개변수> {}
function 이름<타입 매개변수>() {}
const 함수이름 = <타입 매개변수>() => {}
interface IPerson<N, A> {
type: 'person';
name: N;
age: A;
method: <B>(param: B) => void;
}
interface Person<N = string, A = number> {
type: 'person';
name: N;
age: A;
}
type Person1 = Person;
type Person2 = Person<number>;
type Person2 = Person<number, boolean>;