반응형
인터페이스 구현 VS 추상 클래스 상속
인터페이스 구현은 추상 클래스 상속과 아주 비슷합니다.
하지만 인터페이스가 더 범용으로 쓰이며 가벼운 반면, 추상 클래스는 특별한 목적과 풍부한 기능을 갖는다는 점이 다릅니다.
인터페이스
인터페이스는 형태를 정의하는 수단입니다.
값 수준에서 이는 객체, 배열, 함수, 클래스, 클래스 인스턴스를 정의할 수 있다는 뜻입니다.
인터페이스는 아무런 JavaScript 코드를 만들지 않으며 컴파일 타임에만 존재합니다.
추상 클래스
추상 클래스는 오직 클래스만 정의할 수 있습니다.
예상할 수 있겠지만 추상 클래스는 런타임의 JavaScript 클래스 코드를 만듭니다.
추상 클래스는 생성자와 기본 구현을 가질 수 있으며 프로퍼티와 메서드에 접근 한정자를 지정할 수 있습니다.
위의 기능은 모두 인터페이스에선 제공되지 않습니다.
무엇을 사용해야 할까
인터페이스와 추상 클래스 중 무엇을 사용할지는 상황에 따라 다릅니다.
여러 클래스에서 공유하는 구현이라면 추상 클래스를 사용하고, 가볍게 "이 클래스는 T다"라고 말하는 것이 목적이라면 인터페이스를 사용하면 됩니다.
반응형
'👶 TypeScript' 카테고리의 다른 글
클래스는 값과 타입을 모두 선언한다 (0) | 2023.01.16 |
---|---|
클래스는 구조 기반 타입을 지원한다 (0) | 2023.01.16 |
인터페이스 구현 (0) | 2023.01.15 |
선언 합침 (0) | 2023.01.15 |
인터페이스 (0) | 2023.01.15 |