브라우저의 window에 class를 삽입하는 프로젝트를 하는 중인데 typescript에서 class를 이용하는 작업에서 private, readonly를 사용해 왔는데 이게 여전히 외부에서 접근이 가능하다는걸 알게 되었습니다.
이유는 알고보니 private, readonly의 경우 typescript에서 지원하는 것으로 컴파일시에만 검사가 이루어지고 컴파일 완료된 파일에서는 제어하는게 없어서 접근이 가능합니다.
javascript 에서는 #(Hash)를 써서 접근제어를 해야되는데 이건 ECMAScript 2019(ES10)부터 공식적으로 지원하는거라 IE에서 사용시 문법에러를 반환할 수 있다고 합니다.
#(Hash)가 JavaScript의 표준 사양에 포함되어 있어 사용이 더 권장되는것 같습니다.