All files / types brand.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15                             
declare const brand: unique symbol;
 
/**
 * A nominal type: a `T` that cannot be mixed up with another `T` of a different brand.
 *
 * @template T - The underlying type.
 * @template TBrand - The brand name.
 * @example
 * type UserId = Brand<string, 'UserId'>;
 * function toUserId(value: string): UserId {
 *   return value as UserId;
 * }
 */
export type Brand<T, TBrand extends string> = T & { readonly [brand]: TBrand };