공통 속성이 있으므로 in 연산자 대신 바로 속성에 접근할 수 있습니다.
또는 직접 타입 좁히기 함수를 만들 수도 있습니다. 다음과 같은 경우를 봅시다(앞의 예제를 변형했습니다).
function isMoney(param: Money | Liter) {
if (param.__type === 'money') {
return true;
} else {
return false;
}
}
function moneyOrLiter(param: Money | Liter) {
if (isMoney(param)) {
param;
} else {
param;
}
}
// (parameter) param: Money | Liter
// (parameter) param: Money | Liter