Generic은 타입스크립트에서 특정 타입을 지정하지 않고 여러 타입을 사용할 수 있게 해준다, 선언 시점이 아니라 생성 시점에 타입을 명시하여 하나의 타입만이 아닌 다양한 타입을 사용할 수 있도록 하는 기법이다. 간단히 말하자면 타입을 변수화 한것이다. 한번의 선언으로 다양한 타입에 "재사용" 이 가능하다는 장점이 있다.
function toArray<T>(a:T, b:T){
return [a, b]
}
여기서 T 는 number
, string
, boolean
등이 될 수 있다.
toArray<string>("nick" , "john")
toArray<number>("12" , "14")
toArray<boolean>("true" , "false")
이렇게 함수를 할당할때 제네릭을 결정할 수 있다.
class User<p>{
constructor(public payload: P){}
getPayload(){
return this.payload
}
}
interface UserAType {
name: string
age:number
}
const heropy = new User<UserAType>({
name:"nick"
age: 21
})