Boa. Eu também prefiro a primeira opção, só mudaria a nomenclatura, usar o sufixo Type em num objeto causa uma sensação estranha na usabilidade (UserType.Admin) na minha visão. Eu nomearia de UserRolesConst ou UserRolesDictionary.
Em resposta a Por que você deveria evitar enums no TypeScript
1