제네릭
- 함수의 타입을 지정 시 비슷한 타입이 중복될 때
- 타입에 대한 이러한 중복을 쉽게 다룰 수 있는 도구
- 함수의 타입을 일반화 시켜, 제네릭으로 타입을 만들고 그 타입에 따라 함수를 만들기
- 제네릭은 클래스나 인터페이스에서도 쓰임
const idNumber = (n: number) => {
return n
}
const idString = (n: number) => {
return n
}
const idBoolean = (n: number) => {
return n
}
const id = <T>(x: T) => {
return x;
}
type T1 = Array<string>
컴포즈 함수 만들어보기
function getPrice(name:string): number | undefined {
if(name==="tomato"){
return 7000
} else if(name ==="orange"){
return 150000
} else if(name ==="apple"){
return 10000
}
}
const isExpensive = ( price : number | undefined)=>{
if(price === undefined){
return false
}
return price > 10000;
}
function isExpensivePrice(name: string): boolean {
return isExpensive(getPrice(name))
}
const compose = <A, B, C>(g: (y :B)=> C, f: (s: A) => B) => (x:A) => {
return g(f(x));
}