TS에만 있어 JS로 변경되면 삭제되고, 선언 방식 때문에 헷갈릴 수 있으니 안쓰는게 좋지만 개념은 알고 있어야 할듯.

 

함수의 명확한 사용 방법을 강제하기 위해서 같은 함수명으로 파라미터와 리턴 타입 명시를 중복선언해서 입력과 출력에 대한 확실한 모습들을 만드는 방식.

 

function stringOrStrings(members: string): string;
function stringOrStrings(
  member1: string,
  member2: string,
  member3: string
): string;

function stringOrStrings(
  memberOrMembers: string,
  member2?: string,
  member3?: string
): string {
  if (member2 && member3)
    return `아이브: ${memberOrMembers}, ${member2}, ${member3}`;
  return `아이브: ${memberOrMembers}`;
}

console.log(stringOrStrings("안유진, 장원영, 레이"));
console.log(stringOrStrings("안유진", "장원영", "레이"));
console.log(stringOrStrings("안유진", "장원영")); // 에러

오버라이드로 첫 파라미터만 들어오는 경우와 파라미터 3개가 들어오는 경우만 설정해놓았기 때문에, 파라미터 2개가 들어오는 경우에 에러발생


https://www.inflearn.com/course/lecture?courseSlug=%EC%BD%94%EB%93%9C%ED%8C%A9%ED%86%A0%EB%A6%AC-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%ED%92%80%EC%BD%94%EC%8A%A4&unitId=160517&tab=curriculum&subtitleLanguage=ko&category=questionDetail&q=1120856

 

학습 페이지

 

www.inflearn.com

 

'코딩 > TypeScript' 카테고리의 다른 글

Generic  (0) 2024.10.31
abstract  (0) 2024.10.30
const  (1) 2024.10.30
enum  (0) 2024.10.30
utility  (2) 2024.03.17

+ Recent posts