오버로딩
- TypeScript 에 있는 메서드 중 하나로 선언한 타입은 다르지만 같은 함수 명으로 사용할 수 있게 해주는 기능
- 각 경우에 대해 새 함수를 만들 필요 없이 입력 인수에 따라 함수의 다른 구현을 제공하려는 경우에 특히 유용
예시
Interface User{
id : number;
name: string;
age: number;
}
Interface UserQuery{
id : number;
name?: string;
age?: number;
}
function findPerson(name: string): Person[];
function findPerson(age: number): Person[];
function findperson(userQuery: UserQuery) : Person;
function findPerson(query: string | number| UserQuery): Person[]| Person[]|Person {
if (typeof query === "string") {
// search by name
return [{ id: 1, name: query, age: 30 },{ id: 10, name: query, age: 20 },...];
}
if (typeof query === "number") {
// search by age
return [{ id: 15, name: "Alice", age: query }, { id: 3, name: "Bob", age: query }];
}
if (typeof query === "UserQuery"){
// search by id with name or age
return {id: queay, name: "Joey", age:30}
}
}
참고자료
'프로그래밍 > TypeScript' 카테고리의 다른 글
[ TS ] 비밀번호 암호화 (bcypt) (0) | 2024.06.13 |
---|---|
[ TS ] tsconfig.json 의 내용 정리 (0) | 2024.06.08 |
[ TS ] Promise<void> 의미 (0) | 2024.05.07 |
[ TS ] 상속 : extends, super(), (0) | 2024.05.05 |
[ TS ] interface : 필터링하기 (0) | 2024.04.01 |