JavaScript 프로그래밍 언어는 클래스 내부에서만 쓰이는 속성 및 메소드를 구분시키기 위해 private이라는 키워드를 제공합니다. 이러한 은닉화를 도와주는 기능이 JavaScript에서는 (거의)쓰이지 않습니다.
하지만 TypeScript에서는 private 키워드를 통해 클래스 내부에서만 사용가능합니다.
JavaScript에서는 은닉화를 돕기 위해서 일반적으로 클로저 모듈 패턴을 사용합니다.
속성과 메소드의 이름만 노출시켜서 사용을 단순화한다는 의미를 가지고 있습니다. TypeScript 언어는 주요 기능으로 Interface를 구현해 놓았습니다. 하지만 JavaScript에는 존재하지 않습니다.
인터페이스의 이점은 일종의 규약처럼 간주되어, 인터페이스를 구현하는 사람들이 이에 맞게 작성할 수 있게 돕습니다.