6.6 맺으며

Last updated 9 months ago

먼저 타입스크립트가 프로그램을 분석해 더 넓은 타입을 더 좁은 타입으로 좁힐 수 있음을 배웠다. 이 때 타입을 좁힐 수 있게 도와주는 타입 가드는 크게 두 종류가 있었다. 여러 제어 구조에 기반한 제어 구조 분석, 그리고 사용자가 제공하는 사용자 정의 타입 가드가 그것이다.

타입스크립트가 프로그래머의 명시적인 타입 표기 없이도 값의 타입을 추론해 내는 과정, 즉 타입 추론에 대해서도 다루었다. 이 때 타입 추론은 최적의 공통 타입을 찾는 방식으로 이루어진다. 또한, 할당 받는 값 뿐만 아니라 할당하는 값 또한 추론의 대상이 되며, 이렇게 추론된 타입은 문맥 상의 타입이라 부른다.

타입 시스템에게 특정 타입 정보를 강요할 수 있는 타입 단언도 알아보았다. any를 사용한 타입 단언으로 사실상 타입 검사를 완전히 건너 뛸 수 있다. 거듭 강조하건데, 타입 단언은 강력한 도구인만큼 꼭 필요하지 않은 상황에서 남용해서는 안 된다.

마지막으로, 프로그래밍 언어의 타입을 마치 수학의 집합처럼 바라볼 수 있었다. 그 관점에서 유니온 타입과 인터섹션 타입이 각각 합집합, 교집합의 역할을 한다는 것 또한 배웠다. 유니온 타입과 리터럴 타입을 종합해 서로소 유니온 타입을 구현하고 switch-case로 패턴 매칭을 흉내내는 고급 패턴 또한 알아보았다.

6장에서 다룬 타입 시스템이 동작하는 방식, 그리고 타입의 의의에 대한 이해는 시스템이 복잡해질수록 더욱 빛을 발하는 지식이다. 다음 행선지는 타입스크립트에 존재하는 고급 타입들이다.