[TS] 함수 오버로딩
TIL
함수 오버로딩이란 하나의 함수를 매개변수의 개수나 타입에 따라 다르게 동작하도록 만드는 문법으로, 타입스트립트에서는 지원하지만 자바스크립트에서는 지원하지 않는다. 오버로드 시그니처타입스크립트에서 함수 오버로딩을 구현하려면 다음과 같이 버전별 오버로드 시그니처를 만들어야 한다.function func(a: number): void;function func(a: number, b: number, c: number): void;이렇게 구현부 없이 선언부만 만들어둔 함수를 오버로드 시그니처라고 한다. 구현 시그니처그 다음 실제로 함수가 어떻게 실행될 것인지를 정의하는 부분인 구현 시그니처를 만들어야 한다.구현 시그니처의 매개변수는 모든 오버로드 시그니처와 호환되어야 한다. 따라서 b와 c는 선택적 매개변수로 정..
[TS] 함수 타입 정의 및 호출 시그니처 연습
TIL
1. 매개변수 타입 정의introduce 함수- name 매개변수는 String 타입이며, "고견"이라는 기본값을 설정- tall 매개변수는 Number 타입이며, 선택적 매개변수function introduce(name, tall) { if (!tall) { console.log(`안녕하세요 ${name}입니다!`); } else { console.log(`안녕하세요 ${name}입니다. 키는 ${tall}입니다`); }}​function introduce(name = "고견", tall?: number) { if (!tall) { console.log(`안녕하세요 ${name}입니다!`); } else { console.log(`안녕하세요 ${name}입니다. 키는 ${..
[TS] 함수 타입의 호환성
TIL
함수 타입의 호환성이란?함수 타입의 호환성이란 특정 함수 타입을 다른 함수 타입으로 취급해도 괜찮은지 판단하는 것을 의미한다.함수 타입 호환성의 판단 기준기준 1: 반환값 타입이 호환되는가?type A = () => number;type B = () => 10;let a: A = () => 10;let b: B = () => 10;a = b; // ✅b = a; // ❌A의 반환값 타입은 Number, B의 반환값 타입은 Number Literal이다. 변수 a에 b를 할당할 수 있지만, b에 a를 할당할 수는 없다. 반환값 타입은 일반적인 타입 호환성 규칙을 따른다. 슈퍼타입에 서브타입을 할당할 수 있다. 기준 2: 매개변수의 타입이 호환되는가?2-1. 매개변수의 개수가 같을 때type C = (val..