[typescript] 타입 가드(type guard)를 통한 데이터 타입의 확정
타입스크립트에서는 변수나 속성의 데이터 타입을 확인하기 위해 타입 가드(Type Guard)를 사용할 수 있습니다. 타입 가드를 사용하면 런타임시 데이터 타입을 확정할 수 있어 유용합니다.
타입 가드란 무엇인가?
타입 가드는 특정 조건을 만족할 때, 타입 시스템이 해당 변수의 데이터 타입을 좁혀나가는 것을 의미합니다. 이를 통해 코드의 안정성을 높일 수 있으며, 타입 안정성을 보장할 수 있습니다.
예를 들어, 다음과 같은 코드에서 typeof
연산자를 사용하여 타입 가드를 적용할 수 있습니다.
function printAll(strs: string | string[] | null) {
if (typeof strs === "object") {
for (const s of strs) {
console.log(s);
}
} else if (typeof strs === "string") {
console.log(strs);
}
}
위 코드에서 typeof
연산자를 사용하여 strs
의 타입을 검사하고, 해당 타입에 따라 다른 동작을 수행하도록 코드를 작성하였습니다.
타입 가드 예시
아래의 예시는 유니온 타입을 가지는 변수를 타입 가드를 사용하여 구체적인 타입으로 확정하는 예시입니다.
type Fish = { swim: () => void };
type Bird = { fly: () => void };
function move(animal: Fish | Bird) {
if ("swim" in animal) {
return "It's a fish!";
}
return "It's a bird!";
}
위의 move
함수는 animal
매개변수의 타입이 Fish
또는 Bird
인 경우에 따라 다른 동작을 수행합니다.
타입 가드를 이용하면 여러 가지 타입을 좁혀나갈 수 있어서 코드를 더욱 안전하고 가독성 있게 작성할 수 있습니다.
마무리
타입 가드를 활용하여 타입 시스템을 보다 견고하게 만들 수 있습니다. 코드를 작성할 때 타입 가드를 적절히 활용하여 더욱 안전하고 확고한 타입을 지정하는 데 도움이 될 것입니다.
더 많은 정보는 타입 가드(Type Guard) 문서를 참고하세요.