주니어 개발자가 되기위해 자기자신에게 가스라이팅 하기
오버로딩(Overloading), 오버라이딩(Overriding) 본문
사실이건 typescript뿐만 아니라 객체지향 언어들에서 다들 봤을만한 단어이다!
이름이 비슷해서(...) 인지 내가 항상 헷갈려해서... 정리해보려고한다.
1. 오버로딩(Overloading)
함수의 확장 ✅
같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술
꼭! 매개변수의 갯수나 타입이 달라야한다!!!!
//오버로딩을 가능하게 할 함수타입 정의
type Add = {
(a: number, b: number): number;
(a: number, b: number, c: number): number;
};
//함수의 정의
const add: Add = (a, b, c?: number) => {
if (c) return a + b + c;
return a + b;
};
2. 오버라이딩(Overriding)
메소드 재정의 ✅
상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용
추상클래스, 인터페이스에서도 쓰이는 개념
class Animal {
makeSound() {
console.log("동물 울음소리");
}
}
class Dog extends Animal {
makeSound() {
console.log("멍멍");
}
}
const animal = new Animal();
const dog = new Dog();
animal.makeSound(); // "동물 울음소리"
dog.makeSound(); // "멍멍"
'공부 > Typescript' 카테고리의 다른 글
타입스크립트 환경설정 (2) | 2023.11.21 |
---|