[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에 따라 다른 동작을 하도록 하고 있습니다.

타입 가드를 사용하여 명시적 타입 어노테이션을 넘어 보다 정확한 타입을 유추할 수 있습니다. 이는 코드의 안정성을 높이고 에러를 방지하는 데 도움이 됩니다.

결론

명시적 타입 어노테이션은 타입스크립트의 강력한 기능 중 하나이지만, 그 이상으로 타입 가드를 사용하여 변수의 타입을 정확히 판별할 수 있습니다. 이를 통해 코드의 안정성을 높이고 런타임 에러를 방지할 수 있습니다.