[typescript] 타입 단언(type assertion)을 통한 타입 변환

타입스크립트(TypeScript)에서는 자바스크립트와 달리 정적 타입이 지원되며, 이를 통해 변수의 타입을 미리 지정하고 명시할 수 있습니다. 하지만 때로는 컴파일러가 타입을 추론하지 못하는 경우가 발생할 수 있습니다. 이때 타입 단언(type assertion)을 사용하여 개발자가 직접 타입을 지정하고 변환할 수 있습니다.

타입 단언(Type Assertion)이란?

타입 단언이란 개발자가 값의 타입을 컴파일러에게 알려주는 것을 의미합니다. 즉, 개발자가 해당 값의 실제 타입을 확신할 때 사용할 수 있습니다.

타입 단언은 두 가지 형태로 사용할 수 있습니다.

  1. angle-bracket 문법을 사용한 타입 단언:

     let someValue: any = "this is a string";
     let strLength: number = (someValue as string).length;
    
  2. as 키워드를 사용한 타입 단언:

     let someValue: any = "this is a string";
     let strLength: number = (<string>someValue).length;
    

타입 단언의 주의사항

타입 단언은 실제 값의 타입을 변환하는 것이 아니라 컴파일러에게 “이 값은 해당 타입이다”라고 말해주는 것입니다. 따라서 만약 타입 단언으로 지정한 타입과 실제 값의 타입이 일치하지 않는다면 런타임 에러가 발생할 수 있습니다. 이에 따라 타입 단언은 최대한 사용을 억제하고, 타입 추론을 통해 안전한 코드를 작성하는 것이 중요합니다.

타입 단언은 타입 변환이 아니라 컴파일러에게 힌트를 주는 것이므로 신중하게 사용해야 합니다.

타입 단언을 잘 활용하여 타입 추론이 어려운 상황에서도 안전하고 명확한 코드를 작성할 수 있습니다.

참조: 타입 단언(Type Assertion)