Ответ 1
Публичные/частные ключевые слова TypeScript применяются только к способу, которым TypeScript проверяет ваш код - они не оказывают никакого влияния на выход JavaScript.
Согласно спецификации языка (стр. 9-10):
Частная видимость - это конструкция времени разработки; он применяется во время проверки статического типа, но не подразумевает принудительное выполнение во время выполнения.... TypeScript обеспечивает инкапсуляцию реализации в классы во время разработки (путем ограничения использования частных членов), но не может обеспечить инкапсуляцию во время выполнения, потому что все свойства объекта доступны во время выполнения. Будущие версии JavaScript могут предоставлять частные имена, которые позволят принудительному исполнению частными членами
Это уже было задано и ответили здесь: fooobar.com/questions/76375/...
Обновление: этот старый ответ по-прежнему получает объем трафика, поэтому стоит отметить, что в дополнение к указанной выше ссылке на язык, общие, частные и (сейчас) защищенные члены подробно описаны в главе справочника по TypeScript по классам.
2018 Обновление реализации ES Private Fields теперь представляет собой элемент Future на RoadMap TypeScript, хотя обсуждение предполагает, что это будет параллельный жесткий частный вариант, а не замена текущей мягкой частной реализации.