제네릭 타입을 만드는 함수

김민재·2023년 1월 26일
0

제네릭

  • 함수의 타입을 지정 시 비슷한 타입이 중복될 때
  • 타입에 대한 이러한 중복을 쉽게 다룰 수 있는 도구
  • 함수의 타입을 일반화 시켜, 제네릭으로 타입을 만들고 그 타입에 따라 함수를 만들기
  • 제네릭은 클래스나 인터페이스에서도 쓰임
// 숫자를 그대로 돌려주는 함수
const idNumber = (n: number) => {
  return n
}

// 문자열 그대로 돌려주는 함수
const idString = (n: number) => {
  return n
}

// boolean 값 그대로 돌려주는 함수
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));
}

// 주석으로 타입 서명
// (type parameter)<A, B, C>( (B) => C, (A) => B )=> (A) => C
profile
자기 신뢰의 힘을 믿고 실천하는 개발자가 되고자합니다.

0개의 댓글