본문 바로가기

TypeScript

[generic]var.2 다른사용법

function superPrint<V,M>(a:V[],b:M){
return a[1]
}

const a = superPrint([1,2,3,4],"x")
const b = superPrint([true,false,true,true],1)
const c = superPrint(["asdf","b","c"], false)
const d = superPrint([1,2,true,false,"홍대"],[])

좀더 깔끔하다.

 

type Player<E> = {
name:string
extrInfo:E
}
type NicoExtra = {
favFood:string
}

type NicoPlayer = Player<NicoExtra>

const nico: NicoPlayer = {
name:"nico",
extrInfo:{
favFood:"김치"
}
}

const lynn: Player<null> = {
name:"lynn",
extrInfo:null
}

원하는데로 코드 확장이 가능하다.

타입하나함수를 크게 정해두고

커스텀 타입을 보낼수도있고.

그중하나를 바꿀수도있게 해서 재사용성을 좋게 만들수있다.

lynn:Player<null> 여기부분 null 이 타입 <E>로 가는거다.

 

자주쓰는 사용법  Array

function print(arr:Array<number>,name:string){
return({
name,
arr
})
}

제너릭 타입지정? Array 타입지정형식이있다. [] 대괄호가 Array 랑 대체형식?

function print(arr:Array<number>,name:string) #이건 제너릭형식 타입지정

function print<T>(arr:Array<T>,name:string) #이건 제네릭 자동으로 여러가지 지정

function print<T>(arr:T[],name:string) #바로 위에것과 같은 개념이다.