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) #바로 위에것과 같은 개념이다.
'TypeScript' 카테고리의 다른 글
interfaces 타입스크립트 인터페이스란? (0) | 2023.04.19 |
---|---|
Classes 추상클래스 추상메소드 타입스크립트 (0) | 2023.04.19 |
[generic] 다형성 타입 타입스크립트 (0) | 2023.04.17 |
[화살표함수 타입 사용법 (오버로딩,콜시그니쳐)] 타입스크립트 (0) | 2023.04.13 |
[unknown,never]타입스크립트 사용법 (0) | 2023.04.11 |