I know that unions are lighter thanks to type erasure, but enums make some scenarios easier. For instance, I wanted to randomly pick enum values for my seed data (user role in this case), and with a string enum if would be simple, I could use Object.values(UserRole) to get all the possible values, then pick a random one using faker.random.arrayElement(Object.values(UserRole))