TIL

TIL 12주 5일차 - Type script

kimcoach 2023. 1. 24. 18:58

Generic 적용한 함수만들기 

 

함수에 <> 이런 괄호를 열면 파라미터를 또 입력할 수 있습니다. 

근데 여기 안엔 타입만 입력할 수 있습니다. 타입파라미터 문법임 

 

function 함수<MyType>(x: MyType[]) :MyType {
  return x[0];
}

let a = 함수<number>([4,2])
let b = 함수<string>(['kim', 'park'])

그럼 이제 함수를 사용할 때도 <> 안에 파라미터처럼 타입을 입력할 수 있습니다.

그럼 님들이 이제 함수<number>( ) 이렇게 쓰는 순간 

MyType 이라는 변수에 number 라는게 들어간다고 보시면 됩니다. 

그럼 이제 함수( x : number[] ) :number { } 이거랑 똑같이 동작합니다. 

 

그럼 뭐가 좋겠습니까. 아까 unknown 가득한 예제와는 다르게

return 되는 타입이 number입니다. 

b 변수는 return되는 타입이 뭐게요 맞춰보셈 

 

 

아무튼 결론 : Generic을 쓰면 여러분이 정한 타입을 return 값으로 뱉는 함수를 제작가능한 것입니다.

<> 문법만 잘 쓰면 됩니다. 

 

function 함수<MyType>(x: MyType[]) :MyType {
  return x[0];
}

let a = 함수([4,2])
let b = 함수(['kim', 'park'])

실은 함수 사용시 꼭 <> 안써도 알아서 기본 타입을 유추해서 집어넣어줍니다. 

이래도 결과는 똑같습니다. 

 

 

(참고)

- 타입파라미터는 자유작명가능 보통 <T> 이런걸로 많이 합니다. 

- 일반 함수파라미터 처럼 2개 이상 넣기도 가능합니다