Как в typescript проинициализировать класс?
Потому что в ангуляре еще есть декораторы@Injectable и @Component прочие, использующие DIAngular 2 и внедрение зависимостей
они регистрируют класс сервиса (компонента и т.д) в инжекторе, используя ссылку на класс как индентификатор.
А так же просматривают параметры конструктора.
Когда вы запрашиваете сервис в конструкторе, инжектор просматривает свой реестр, и если экземпляр класса найден, то передает его в конструктор, а если нет, то создает экземпляр. Т.е. ваше new UserService() присуствует, но скрыто в декораторе.
Понятное дело, что в голом typescript такое поведение не предусмотрено.
Если вы хотите использовать фишки а ля Angular на бэкенде, то посмотрите на Nest.js, там все это уже настроено, весьма годный бэкенд фреймворк (впрочем есть и другие). 
Если хотите просто взять механизм DI для своего проекта, посмотрите библиотеки typedi и Inversify
Ваш код не работает, потому что за вас никто экземпляр класса в ваш constructor не передает.
В Angular этим занимается IoC контейнер который реализует Dependency Injection.
Если вам нужен подобный функционал, то ищите реализации IoC  контейнеров для JS/TS, например inversify.io/