Branded Types

Брендирање типова је Typescript техника којом лажемо компајлер како бисмо га натерали да разликује две вредности које су у суштини исти примитивни типови (нпр. оба су бројеви), али имају потпуно различиту семантичку улогу.

type UserId = number & ({ readonly __brand: unique symbol });
type ProductId = number & ({ readonly __brand: unique symbol });
type Coordinate = number & ({ readonly __brand: unique symbol });
type Second = number & ({ readonly __brand: unique symbol });