[typescript] 명시적 타입 어노테이션의 너머에 있는 타입 가드
타입스크립트에서 명시적 타입 어노테이션을 사용하여 변수의 타입을 지정할 수 있습니다. 그러나 때로는 변수의 타입을 확실히 지정할 수 없는 상황이 발생합니다. 이때 타입 가드를 사용하여 더 정확한 타입을 유추할 수 있습니다.
명시적 타입 어노테이션
let str: string = "hello";
위의 예제에서 str
변수의 타입을 string
으로 명시적으로 지정했습니다.
타입 가드
타입 가드는 조건문을 사용하여 변수의 타입을 좁히는 역할을 합니다.
function padLeft(value: string, padding: string | number) {
if (typeof padding === "number") {
return Array(padding + 1).join(" ") + value;
}
if (typeof padding === "string") {
return padding + value;
}
// padding을 사용하는 다른 경우 처리
throw new Error(`Expected string or number, got '${padding}'.`);
}
위의 예제에서 typeof
를 사용하여 변수 padding
의 타입을 확인하고, 각각 number
또는 string
에 따라 다른 동작을 하도록 하고 있습니다.
타입 가드를 사용하여 명시적 타입 어노테이션을 넘어 보다 정확한 타입을 유추할 수 있습니다. 이는 코드의 안정성을 높이고 에러를 방지하는 데 도움이 됩니다.
결론
명시적 타입 어노테이션은 타입스크립트의 강력한 기능 중 하나이지만, 그 이상으로 타입 가드를 사용하여 변수의 타입을 정확히 판별할 수 있습니다. 이를 통해 코드의 안정성을 높이고 런타임 에러를 방지할 수 있습니다.