Como TypeScript usa tipado estructural, un UserId y un OrderId que ambos son string son intercambiables: el compilador no puede impedir que los confundas. Los tipos con marca (branded types) simulan el tipado adjuntando una "marca" fantasma y única para que tipos por lo demás idénticos se vuelvan distintos.
