Omdat TypeScript structureel getypeerd is, zijn een UserId en een OrderId die beide string zijn uitwisselbaar — de compiler kan je niet tegenhouden om ze door elkaar te halen. Branded types simuleren nominale typing door een unieke, phantom "brand" toe te voegen zodat anders identieke types onderscheidend worden.
