IT/Typescipt

Typescript Classes, Interface

1am_wish 2022. 11. 6. 17:27
728x90
반응형
  • Class
    • 추상 클래스(abstract) 작성이 가능하다
      • 추상 클래스는 표준화된 프로퍼티와 메소드 작성을 위해 필요 
      • private, public 말고도 protected라는 프로퍼티 접근 제어자 사용 가능
        • private : 클래스 에서만 사용 가능. 자식 클래스에서도 사용 불가.
        • public : 클래스 내, 자식 클래스 내, 클래스 외 인스턴스에서 어디서든 사용 가능
        • protected : 클래스 내, 자식클래스에서 사용 가능. 클래스 외 인스턴스에서 사용 불가
    • 추상 메소드 작성이 가능하다
      • 추상 메소드는 Call Signature만 작성 가능하고 구현은 상속받은 클래스에서 해야한다
        • 상속받은 클래스에서 추상 메소드를 구현하지 않으면 에러 발생!
    • static 멤버를 허용한다
      • 특정 인스턴스와 연결되지 않음. 고로 클래스를 선언하지 않아도 사용 가능
  • Interface
    • 오브젝트의 모양을 특정할 수 있는 간단한 방법
    • type과 다른 점 
      • 상속이 가능
      • 동명의 interface를 선언해도 typescript가 하나로 합쳐줌
    • 추상 클래스 대신 Interface를 implements하여 상속받을 수 있다.
      • 장점 : 코드가 단순화되고 가벼워짐, 여러개의 interface를 동시에 상속받을 수 있다
      • 단점 : private 과 protected는 불가하고 public 만 가능하다

class와 interface 모두 타입으로 사용 가능 !

728x90
반응형