타입 단언

타입 단언

타입스크립트 타입 단언

타입 단언이란?

타입 단언은 타입스크립트의 타입 추론에 기대치 않고 개발자가 직접 타입을 명시하여 해당 타입으로 강제하는 것을 의미한다.

let name = '' as string

이 코드는 name이라는 변수의 타입을 string 타입으로 간주한다는 의미이다.

  • as 키워드를 붙이면 타입스크립트가 컴파일할 때 해당 코드의 타입 검사는 수행하지 않는다.

타입 단언 문법

  • 타입 단언은 숫자, 문자열, 객체 등의 원시 값뿐만 아니라 변수나 함수의 호출 결과에도 사용할 수 있다.
function getId(id) {
  return id;
}

var myId = getId('spring') as number;
  • 타입 단언은 다음과 같이 여러 번 중첩해서 사용할 수 있다.
let num = (10 as any) as number;

타입 단언을 사용할 때 주의할 점

  • as 키워드는 구문 오른쪽에서만 사용한다.

  • 타입 단언을 이용하면 어떤 값이든 내가 원하는 타입으로 단언할 수 있을 것 같지만 실제로는 그렇지 않다.

    • 두 형식이 서로 충분히 겹치지 않는다. (타입 시스템 관점에서 타입의 교집합이 없다는 의미이다.)

남용하지 않기

타입 단언은 코드를 실행하는 시점에서 아무런 역할도 하지 않기 때문에 에러에 취약한 측면이 있다.


null 아님 보장 연산자

null 아님 보장 연산자null 타입을 체크할 때 유용하게 쓰는 연산자이다.

  • 값이 null이 아님을 보장해준다.
function langauage(titles: Titles | null ) {
 let result = titles!.name();
  return result;
}
  • !가 바로 null 아님 보장 연산자(!)이다.

타입 관점에서 null이 아니라고 보장하는 것이지 애플리케이션을 실행할 때 실제로 null 값이 들어오면 실행 에러기 빌생함으로 주의해야 한다.


© 2021. All rights reserved.

Powered by Hydejack v9.1.6