[typescript] 타입 가드와 타입 단언의 개념

타입스크립트에서는 다양한 방법으로 변수 및 객체의 타입을 보다 정확하게 지정할 수 있습니다. 두 가지 주요한 방법은 타입 가드타입 단언입니다. 이들은 코드의 가독성과 유지보수를 쉽게 만들어주며, 코드에서 발생할 수 있는 타입 관련 오류를 사전에 방지할 수 있습니다.

타입 가드

타입 가드는 런타임에서 어떤 값이 특정 타입인지 검사하여 타입을 좁혀주는 기능입니다. 주로 typeof, instanceof, in, is 등의 연산자를 활용하여 사용됩니다.

아래는 typeof 연산자를 사용한 예제입니다.

function printLength(strOrArr: string[] | string) {
    if (typeof strOrArr === 'string') {
        console.log(strOrArr.length); // 여기에서 strOrArr는 string 타입으로 좁혀집니다.
    } else {
        console.log(strOrArr.length); // 여기에서 strOrArr는 string[] 타입으로 좁혀집니다.
    }
}

타입 단언

타입 단언은 개발자가 컴파일러보다 특정 값의 타입을 더 잘 알고 있을 때 사용됩니다. 주로 값 뒤에 as 키워드를 사용하여 타입을 명시적으로 지정하는 방식으로 사용됩니다.

아래는 타입 단언을 사용한 예제입니다.

let someValue: unknown = "this is a string";
let strLength: number = (someValue as string).length; // someValue가 string 타입임을 명시적으로 지정

결론

타입 가드와 타입 단언은 타입스크립트의 강력한 기능 중 하나로, 코드를 더 안정적이고 예측 가능하게 만들어줍니다. 올바른 상황에서 적절히 사용하여 타입 관련 오류를 최소화할 수 있습니다.

참고 자료