[typescript] 유니온 타입을 확인하는 타입 가드 함수 작성 방법
아래는 TypeScript로 유니온 타입을 확인하는 타입 가드 함수를 작성하는 예제입니다.
// 유니온 타입 정의
type Foo = { type: "foo", fooProp: string };
type Bar = { type: "bar", barProp: number };
type MyUnionType = Foo | Bar;
// 타입 가드 함수 정의
function isFoo(obj: MyUnionType): obj is Foo {
return obj.type === "foo";
}
// 타입 가드 함수 활용
function processUnionType(obj: MyUnionType) {
if (isFoo(obj)) {
console.log(obj.fooProp.toUpperCase());
} else {
console.log(obj.barProp.toFixed(2));
}
}
// 테스트
const obj1: MyUnionType = { type: "foo", fooProp: "abc" };
const obj2: MyUnionType = { type: "bar", barProp: 123 };
processUnionType(obj1); // 출력: "ABC"
processUnionType(obj2); // 출력: "123.00"
위 예제에서 isFoo
함수는 MyUnionType
의 값이 Foo
타입인지를 확인하는 타입 가드 함수입니다. 이를 활용하여 processUnionType
함수 내에서 해당 값이 Foo
와 Bar
중 어떤 타입인지를 구별하여 안전하게 접근할 수 있습니다.
이처럼 타입 가드 함수를 활용하면 유니온 타입의 안전한 처리가 가능해집니다. 필요에 따라 유니온 타입의 다른 타입에 대한 타입 가드 함수도 추가하여 활용할 수 있습니다.