developer_kcm
타입스크립트 문법 (함수) 본문
interface Cat {
name: string;
age: number;
}
const cat: Cat = {
name: 'Lucy',
age: 3
}
// 명시적 this 타입
function hello(this: Cat, message: string) {
console.log(`Hello ${this.name}, ${message}`);
}
hello.call(cat, 'You are pretty awesome!');
오버로딩(overloading)
- 다양한 인자 타입을 처리하기 위해 동일한 함수 이름을 여러번 선언하는 방법
1. 타입 선언
function add(a: string, b: string): string; // 문자열을 인자로 받아서 문자열을 반환
function add(a: number, b: number): number; // 숫자를 인자로 받아서 숫자를 반환
2. 함수 구현
function add(a: any, b: any): any {
return a + b;
} // 위에 선언된 시그니처들에 맞게, 문자열이면 문자열 결합, 숫자면 숫자를 더함
add('hello ', 'world~'); // 'hello world'
add(1, 2); // 3
add('hello ', 2); // 에러 발생
add('hello', 2); // 에러 발생
- 오버로드 시그니처에 정의되지 않은 인자 타입 조합은 허용하지 않는다.
- 실제 구현은 하나만 작성. 구현된 함수는 모든 오버로드 시그니처를 만족시켜야 한다.
- 함수 호출 시 오버로드 시그니처와 일치하는지 검증하여 일치하지 않다면 에러 발생!
'Typescript' 카테고리의 다른 글
tsconfig.json 구성 옵션 (0) | 2024.06.10 |
---|---|
타입스크립트 문법 (접근 제어자) (0) | 2024.06.03 |
타입스크립트 문법 (Interface, Alias) (0) | 2024.06.01 |
타입스크립트 문법 (타입) (0) | 2024.05.30 |