function isMoney(param: Money | Liter): param is Liter {
if (param.__type === 'money') {
return true;
} else {
return false;
}
}
function moneyOrLiter(param: Money | Liter) {
if (isMoney(param)) {
param;
} else {
param;
}
}
// (parameter) param: Liter
// (parameter) param: Money
따라서 최대한 기본적인 타입 좁히기를 먼저 시도하고, 정 안 될 때 타입 서술을 사용하는 게 좋습니다.