이미 선언된 타입들로 유니온을 선언해 Pet이라는 하나의 타입을 만들었다.instanceof를 사용해서 타입가드를 해주었고 in, typeof 를 이용해서 타입가드를 해 줄수도 있다.type interface class 연산자를 사용해서 새로운 타입을 선언 할 수 있다
자바스크립트에서는 클래스 내 생성자를 선언할 수 있으며 인스턴스 생성 중 한 번만 호출된다.컴파일 타겟이 ES5인 경우타입스크립트 컴파일러 -> 자바스크립트 생성자 함수로 컴파일컴파일 타겟이 ES6인 경우타입스크립트 컴파일러 -> 자바스크립트 클래스로 컴파일클래스 생성
클래스는 다른 클래스를 상속받아 새로운 클래스를 만들어 낼 수 있다. 클래스간 부모, 자식관계의 형성이다.이때 자식클래스는 상속받은 부모클래스의 멤버(변수, 메서드)에 접근해서 사용할 수가 있다. 이를 제한하는 것이 접근제어자 public private protecte
클래스의 각 인스턴스가 일부 프로퍼티를 공유해야하는 상황에서 static 키워드를 사용할 수 있다.위의 두 인스턴스는 동일한 변수 totalBullet을 공유한다.그러나 클래스를 상속받은 서브클래스와는 공유하지 않는다.Shooter클래스의 인스턴스와 Shooter클래스