JavaScript에 더 많은 기능을 붙인 TypeScript가 객체 지향적으로 디자인되었다.
Java, TypeScript는 Class 내부에서만 사용하는 속성 및 메소드를 구분하기 위해 private 이라는 키워드를 제공합니다.
JavaScript도 은닉화를 도와주는 기능이 있지만 널리 쓰이지 않습니다. (지원하는 브라우저가 적습니다.)
따라서 JavaScript에서는 은닉화를 위해 클로저 모듈 패턴을 사용합니다.
객체 지향 프로그래밍의 주요 특징 중 하나인 추상화는, 속성과 메소드의 이름만 노출시켜 사용을 단순화 한다는 의미를 가지고 있다. (Interface를 단순화 시킵니다.)
Interface의 장점은 일종의 규약처럼 간주되어, class로 구현하는 사람들이 이에 맞게 작성할 수 있게 돕습니다. 실질적인 사용법을 공개하지 않아도 사용법을 노출시킬 수 있습니다.