[typescript] 타입 단언(Type Assertion)의 개념과 활용 방법

타입스크립트(TypeScript)에서 타입 단언(Type Assertion)은 개발자가 컴파일러에게 “나는 여기서의 값의 타입을 확실하게 알고 있다”고 말해주는 기법입니다. 이것은 개발자가 컴파일러의 타입 검사기능을 무시하도록 하는 것이기 때문에 사용시 주의가 필요합니다.

타입 단언(Type Assertion)을 어떻게 사용하나요?

타입 단언(Type Assertion)은 다음 두 가지 형태로 사용할 수 있습니다:

  1. <타입> 구문
  2. as 구문

<타입> 구문

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

위 예제에서 someValueany 타입으로 선언되었습니다. 하지만 문자열의 길이를 구하기 위해서는 someValue가 실제로 문자열임을 타입스크립트에게 알려야 합니다. 따라서 (someValue as string).length와 같이 사용하여 컴파일러에게 해당 값의 타입을 알리는 것입니다.

as 구문

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

as 구문과 마찬가지로, <타입> 구문도 타입 단언을 수행하는데 사용됩니다. TypeScript에서는 이 두가지 모두 지원되지만, JSX를 사용하는 경우에는 as 구문을 권장합니다.

타입 단언(Type Assertion)을 사용할 때 주의할 점

타입 단언(Type Assertion)은 해당 값이 실제로 그 타입을 가지고 있음을 확신할 때에만 사용해야 합니다. 그렇지 않을 경우 런타임 에러가 발생할 수 있습니다. 불필요한 사용은 오히려 코드를 복잡하게 만들 수 있으므로 신중하게 사용해야 합니다.

이러한 타입 단언(Type Assertion) 기능을 올바르게 사용하면 코드 타입 안정성을 강화하고 프로그램의 견고성을 높일 수 있습니다.

참고 자료