[노마드 리액트 스터디] 9일차 - 타입스크립트(2)

lisoh·2023년 2월 14일
0
post-thumbnail

3.0 Call Signatures (06:09)

타입스크립트에서의 함수

  • call signatures
  • 다형성(polymorphism)
  • 오버로딩(overloading)
  • 제네릭(generics)

call signatures란 함수 위에 마우스를 올렸을 때 보게 되는 것을 말해.
이건 인자의 타입과 리턴의 타입을 알려주는거야.

type Add = (a:number, b:number) => number;
//이게 call signatures

const add:Add = (a,b) => a + b

3.1 Overloading (11:11)

오버로딩(overloading)
외부 라이브러리들은 오버로딩을 엄청 많이 사용해. 그래서 이게 어떻게 생겼는지 알아두면 좋아.

오버로딩은 함수가 여러 개의 call signatures를 가지고 있을 때 발생시켜.
다시 말해 오버로딩은 여러 call signatures가 있는 함수일 뿐이야.

type Add = {
  (a:number, b:number) : number
  (a:number, b:string) : number
}
//이게 call signatures

const add:Add = (a,b) => {
  if(typeof b === "string") return a
  return a + b
}

타입에 스트링이 올 수도, 넘버가 올 수도 있을때 오버로딩을 사용하는거야.
파라미터의 타입도 다르고 파라미터의 개수도 다를 수 있어.
그럴 경우에는 개수가 더 많은 파라미터를 optional로 처리해줘야해.

type Add = {
	(a:number, b:number) :number
    (a:number, b:number, c:number): number,
}

const add:Add = (a, b, c?:number) => {
	if(c) return a + b + c
  	return a + b
}
profile
프론트엔드 개발자를 꿈꾸는 개발초보 호랑이

0개의 댓글