브랜드 속성으로 enum의 멤버를 사용했습니다. 다만 같은 enum의 멤버여야 서로 구분됩니다. 다른 enum의 멤버끼리는 구분되지 않을 수 있습니다.
enum Money {
WON,
}
enum Water {
LITER,
}
interface M {
type: Money.WON,
}
interface N {
type: Water.LITER,
}
function moneyOrLiter(param: M | N) {
if (param.type === Money.WON) {
param;
} else {
param;
}
}
moneyOrLiter({ type: Money.WON }) // money
moneyOrLiter({ type: Water.LITER }) // money