type Literal = "abc";
class TestClass {}
// 사용자 정의 타입가드 함수
function isLiteralAbc(arg: any): arg is Literal // 반환 형식에서 타입 가드 정의
{
return (arg === "abc"); // 유효한 런타임 타입 가드 구현 (boolean 리턴해야 함)
}
//------------------------------------------------------------------------------
function _(arg: number | Literal | TestClass) {
if (typeof arg === "number") {
// [1] typeof 타입가드
}
else if (arg instanceof TestClass) {
// [2] instanceof 타입가드
}
else if (isLiteralAbc(arg)) {
// [3] 커스텀 타입가드
}
}