Brand
Crea tipos nominales/branded para IDs y primitivos con tipos seguros.
#types
#typescript
#utility-type
#branding
export type Brand<T, Name extends string> = T & { readonly __brand: Name;};
// Usagetype UserId = Brand<string, 'UserId'>;type OrderId = Brand<string, 'OrderId'>;
function getUser(id: UserId) { /* ... */ }
const userId = 'user_123' as UserId;const orderId = 'order_456' as OrderId;
getUser(userId); // OKgetUser(orderId); // Error: OrderId not assignable to UserId