패스트캠퍼스 데브캠프
김민태의 데브캠프 2기 - 함수 오버로딩
vitamin3000
2024. 11. 11. 11:50
함수 오버로딩을 할 때는 함수명, 매개변수 개수가 동일해야하고, 자료형 중에 any를 사용하여 선언한다.
아래 에시를 보자
function add(a: string, b: string): string;
function add(a: number, b: number): number;
function add(a: any, b: any): any{
return a + b;
}
add("hello", "world");
add(1,2);
다음 방법으로는 직접 union 타입으로 매개변수에 지정하는 방식이다.
// 매개변수에 직접 union타입으로 지정
function saySometing(word: string | string[]): string{
if(typeof(word === "string"))
{
return word;
} else if (Array.isArray(word)){
return word.join(" ");
}
throw new Error("unable to say something");
}
saySometing(["hello", "world"]) // 'hello world'
여기서 join() 메소드를 사용했는데, 이것은 배열의 각 원소를 매개변수 값으로 연결해준다.
함수 오버로딩 방법으로 작성해보면..
function saySometing(word: string) : string
function saySometing(words : string[]) : string
function saySometing(word: any): any{
// 로직은 동일
}
saySometing(["hello", "world"]) // 'hello world'