타입스크립트 프로그래밍, 저자: 보리스 체르니를 읽고 정리했습니다. 컴패니언 객체 패턴이란? 스칼라에서 유래한 기능으로, 같은 이름을 공유하는 객체와 클래스를 쌍으로 연결한다. 타입스크립트에도 타입과 객체를 쌍으로 묶어주는, 비슷한 기능의 비슷한 패턴이 존재한다. 컴패니언 객체 예시 *Currency가 빨간줄인 이유는 tsConfig.json에서 noImplicityAny가 true로 설정되어 있는 상태이고. Currency가 현재 Any타입으로 추론되고 있기 때문에 경고를 보내는 것이다. > ### 타입스크립트에서 타입과 값은 별도의 네임스페이스를 갖는다. 이는 곧 하나의 이름을 타입과 값 모두에 연결 할 수 있다는 것이다. 여기서 컴패니언 객체 패턴을 이용하면 별도
접근제한자란? 외부에서 특정 인스턴스의 프로퍼티에 대한 접근 수준을 제한한다. c++, JAVA와 같이 class개념을 갖는 객체지향 언어들의 접근제한자와 비슷하다. 다만 JavaScript 내에서의 class의 성격은 다른 문법들과 다르기 때문에 접근제한자 또한 비슷하면서도 다르다. 필요성 객체지향 프로그래밍의 특징 중에 캡슐화가 있다. 캡슐화는 객체의 속성과 메서드를 하나로 묶어 공통된 틀을 만든다. 이는 중복되는 코드를 여런 작성하지 않게 해준다. 그리고 일부 데이터는 외부에서 접근할 수 없도록 하여 함부로 조작할 수 없게 한다. 이를 은닉화라고 한다. 이를 통해 사용자는 구체적 동작 방식을 알 필요도 없고(추상화), 조작할 수도 없다.(은닉화된 데이터의 무결성이 보장된다) 접근 제한자는 이 중 은닉화를 위해 존재한다고 볼 수 있다. 접근 제한자의 종류 > ## ` 어디에서나 접근할 수 있다. default 접근