2.13절에서 배운 브랜드 속성을 사용하면 객체의 구분이 쉬워집니다.
interface Money {
__type: 'money';
amount: number;
unit: string;
}
interface Liter {
__type: 'liter';
amount: number;
unit: string;
}
function moneyOrLiter(param: Money | Liter) {
if (param.__type === 'money') {
param;
} else {
param;
}
}
// (parameter) param: Money
// (parameter) param: Liter