클래스
typeScript 공식 핸드북을 참고하였습니다.
#
구조- javascript 의 클래스 구조와 비슷합니다.
- 프로퍼티의 타입을 반드시 표기해 주어야합니다.
- 컴파일 옵션의 strictPropertyInitialization 가 true 상태면 constructor에서 반드시 초기화를 해주어야합니다. (strict 옵션 안에 포함)
#
상속- javascript 의 상속과 비슷합니다.
- 단, constructor를 자식클래스에서도 선언해주었다면, 부모클래스의 constructor(super();)를 반드시 선언해주어야합니다.
- 메소드 오버라이딩이 가능합니다.
#
Public, Private, and Protected- 클래스의 멤버들은 public 이 디폴트로 되어있습니다.
- public을 명시적으로 표기할 수 있습니다. ∴ name과 age, hello()와 hi()는 구조적으로 같습니다.
#
private- private 멤버는 기본적으로 클래스 외부에서 접근할 수 없습니다.
- javascript의 관습처럼 private 멤버들에겐 앞에 _를 붙입니다.
#
protected- protected 멤버는 부모-자식 클래스 끼리만 접근할 수 있습니다. 컨스트럭터 또한 그렇습니다.
#
ReadOnly Modifier#
매개 변수 프로퍼티- 매개 변수에 private, public, protected, readOnly를 덧붙이면 클래스 멤버로 자동으로 선언과 할당을 해줍니다.
#
접근자- getter setter 를 제공합니다.
- ECMAScript 5 이상만 지원합니다.
- getter 만 사용하면 자동으로 readOnly로 추론됩니다.
#
Static#
추상 클래스 (abstract)- 추상 클래스는 인스턴스를 만들 수 없습니다.