클래스 상속과 인터페이스 계약 결정 트리

둘 다 관계를 표현하지만 생성되는 코드와 결합 방식이 다르다.

extends와 implements둘 다 관계를 표현하지만 생성되는 코드와 결합 방식이 다르다.
class Dog extends…

런타임에 남음

prototype 관계와 부모 구현을 물려받는다. · 한 부모 클래스 · 생성자에서 super() 로 초기화한다.…

class Robot…

컴파일 때만 검사

인터페이스는 JavaScript에서 사라진다. · 여러 역할 가능 · 복수 인터페이스 계약을 동시에 만족한다.…

3

공통 구현을 실제로 재사용?

extends

4

서로 다른 클래스에 같은 역할을 보장?

implements

5

구현 재사용과 역할 보장이 모두 필요?

둘을 함께 사용

핵심TypeScript는 구조적 타입 시스템이므로 implements 를 쓰지 않아도 모양이 같으면 인터페이스 타입에 할당될 수 있다.