중복되는 객체 타입을 하나로 만들어서 사용 가능
interface 인터페이스이름 {
속성이름: 속성타입;
}

type(객체뿐 아니라 union도 가능)

interface(객체만 가능)

type

interface

동일한 이름으로 재선언할 경우 자동으로 하나로 합쳐짐
type 새로운이름 = 기존 이름 & {새로운 속성};

-interface(선언적 확장 가능) - 기존 속성과 새로운 속성이 합쳐

-interface

class 클래스이름 {
속성이름: 속성타입;
}

속성 이름 앞에 public, private, protected를 붙일 수 있음
인터페이스 내부에 함수를 입력할 수 있지만, 함수의 작업 코드는 클래스에서만 작성해야 한다
완전하게 구현되어 있지 않은 매서드를 갖는 클래스
abstract class 클래스이름 {
속성이름: 속성타입;
abstract 매서드이름(){}
}


