타입 추론과 타입 단언

Kyung yup Lee·2022년 2월 5일
0

타입스크립트

목록 보기
1/1

타입 추론

타입 추론이란 타입스크립트가 자체적으로 코드를 보고 타입을 추론해내는 것을 의미한다.

위 코드를 보면 num 변수의 타입을 지정해주지 않았는데도, 타입스크립트는 자체적으로 num 변수의 타입을 number로 추론해냈고, 에러를 띄워주고 있다.

이 말은 타입스크립트에서 반드시 문법적으로 타입을 지정해줄 필요는 없다는 뜻이다. 이 타입 추론이 정확하게 되면 될 수록, 타입스크립트는 강력한 언어가 될 것이다.

java 와 같은 강타입 언어와 비교하면 더 도드라지는 특징이다. 자바는 변수 선언 자체를 타입 선언과 함께 해주어야 하는 문법을 갖고 있다.

타입 추론이 일어나는 시점

  1. 변수 초기화
  2. 함수의 매개변수가 디폴트 값으로 만들어질 경우
  3. 함수의 반환 타입이 결정되는 시점

복잡한 타입 추론

타입 추론이 좋아보이지만, 타입스크립트 컴파일러가 항상 정확한 타입을 추론하는 것은 아니다. 타입을 추론하는 것은, 결국 개발자가 할당한 값을 통해 이루어지는 것이기 때문에, 타입 추론에는 개발자의 실수가 항상 포함될 수 있다.

특히 객체를 사용해서 데이터가 복잡해질 수록 개발자의 실수가 반영될 여지가 커지고, 타입추론의 위험성 또한 커지게 된다.

이를 극복하기 위해 타입 단언을 사용해야 한다.

타입 단언

정확히 타입을 이용하기 위해 타입 단언을 사용할 수 있다.

타입 추론에는 한계가 있기 때문에 정확히 타입을 직접 지정해주는 방법을 통해 타입스크립트에 좋

브라켓

위와 같이 브라켓에 해당 값의 타입을 단언해줄 수 있다.

이렇게 직접 타입을 단언해줄 경우, 할당된 값이 어떤 타입이든, 우선적으로 단언된 타입이 우선적으로 적용되는 것을 볼 수 있다.

as 키워드, : 사용

위와 같은 as 키워드를 사용할 수도 있다.

객체에서 타입 단언

객체를 사용할 경우 내부의 프로퍼티를 모두 타입 지정해주어야 한다.

이 과정에서 type 키워드와 interface 키워드를 사용할 수 있다.

위 예제와 같이, 객체에 type이나 interface를 통해 타입을 지정해주지 않으면, 이 객체의 프로퍼티에 대해서는 타입스크립트가 타입 추론해주지 않는다.

직접 타입 지정을 해주어야 한다.

profile
성장하는 개발자

0개의 댓글