[타입스크립트] overloading

휘루·2023년 3월 29일
0

타입스크립트

목록 보기
8/10
  • 오버로딩은 함수가 여러개의 call signature를 가지고 있을 때 발생합니다.
  • call signature가 있으면 여러 호출을 할 때 typeof를 통해 검증 후 사용합니다.

overloading

타입 별칭으로 a는 무조건 number입니다.
b는 number인지 string인지 확인이 필요합니다.

a + b를 할때 number + string이면 더하기가 불가능합니다.
이럴 때 typeof b === "string"인지 확인을 해야합니다.

고 수락하면 return a를 가져옵니다.

next.js

next.js에서는 많이 이렇게 사용한다고 합니다.

overloading 실제 예시

일단 받아적긴 했습니다만... 설명해보자면

string이나 config타입을 가지고 있다면 내부에서 타입을 체크하게 해줍니다.
string인지 number인지 boolean인지 확인을 합니다.

config가 string이라는 게 확인이 되면 console.log(config)가 출력이 되고
그렇지 않은 경우 console.log(config.path)로 출력이 됩니다.

여러개의 argument, parameter

a는 number b도 number입니다.
c도 number입니다. 근데 c는 타입 별칭에서 추가된 파라미터이기 때문에 옵션으로 칩니다.

그래서 c는 number일수도 있기 때문에 const로 정의할 때
c는 추가적으로 타입을 줘야 하고 c는 선택사항이라는 걸 알려줍니다.

사실 이런 경우는 정말 보기 힘든 경우입니다만 call signature 파라미터 갯수가 다른 경우
마지막 추가 파라미터 (a : number, b : number, c : number) 선택, 옵션사항입니다.

보통은 string을 보내거나 Config로 객체를 보내는 경우가 많습니다.

add(1, 2)를 호출하거나
add (1, 2, 3)을 호출하면 작동이 됩니다.

profile
반가워요

0개의 댓글