TypeScript는 구조적으로 타이핑되기 때문에, 둘 다 string인 UserId와 OrderId는 서로 교환 가능합니다 — 컴파일러는 당신이 그것들을 섞어 쓰는 것을 막을 수 없습니다. Branded type은 고유한 가상(phantom) "브랜드"를 붙여 nominal 타이핑을 모사하여, 그렇지 않았으면 동일했을 타입들을 구별되게 만듭니다.
ts
<T, B> = T & { : B };
= <, >;
= <, >;
() { id; }
uid = ;
oid = ;
(uid);
(oid);
();
