ts-for-jsdev
  • 자바스크립트 개발자를 위한 타입스크립트
  • 들어가며
  • 01 타입스크립트 소개
    • 1.0 들어가며
    • 1.1 정적 타입 분석
    • 1.2 왜 타입스크립트인가
    • 1.3 타입스크립트의 구성요소
    • 1.4 타입스크립트의 역사
  • 02 ECMAScript
    • 2.0 ECMAScript
    • 2.1 블록 수준 스코프
      • 2.1.1 let을 이용한 선언
      • 2.2.2 const를 이용한 선언
      • 2.2.3 스코프 베스트 프랙티스
    • 2.2 객체와 배열
      • 2.2.1 비구조화 할당
      • 2.2.2 나머지 연산자와 전개 연산자
      • 2.2.3 객체 리터럴 변경사항
    • 2.3 함수
      • 2.3.1 기본 매개변수
      • 2.3.2 화살표 함수
    • 2.4 템플릿 리터럴
      • 2.4.1 멀티라인 문자열
      • 2.4.2 문자열 치환
    • 2.5 원소 순회
      • 2.5.1 forEach 메소드
      • 2.5.2 for-of 문법
      • 2.5.3 이터레이터 프로토콜
      • 2.5.4 이터러블 프로토콜
    • 2.6 비동기 처리
      • 2.6.1 프로미스
      • 2.6.2 Async / Await
    • 2.7 맺으며
  • 03 타입스크립트 기초 문법
    • 3.0 타입스크립트 기초 문법
    • 3.1 기본 타입
    • 3.2 배열과 튜플
    • 3.3 객체
    • 3.4 타입 별칭
    • 3.5 함수
    • 3.6 제너릭
    • 3.7 유니온 타입
    • 3.8 인터섹션 타입
    • 3.9 열거형
  • 04 인터페이스와 클래스
    • 4.0 들어가며
    • 4.1 인터페이스 기초
    • 4.2 색인 가능 타입
    • 4.3 인터페이스 확장
    • 4.4 클래스
    • 4.5 클래스 확장
    • 4.6 클래스 심화
      • 4.6.1 스태틱 멤버
      • 4.6.2 접근 제어자
      • 4.6.3 접근자
      • 4.6.4 추상 클래스
    • 4.7 인터페이스와 클래스의 관계
    • 4.8 맺으며
  • 05 타입의 호환성
    • 5.0 들어가며
    • 5.1 기본 타입의 호환성
    • 5.2 객체 타입의 호환성
    • 5.3 함수 타입의 호환성
    • 5.4 클래스의 호환성
    • 5.5 제너릭의 호환성
    • 5.6 열거형의 호환성
    • 5.7 맺으며
  • 06 타입 시스템 심화
    • 6.0 들어가며
    • 6.1 타입 좁히기
    • 6.2 타입 추론
    • 6.3 타입 단언
    • 6.4 집합으로서의 타입
    • 6.5 서로소 유니온 타입
    • 6.6 맺으며
  • 07 고급 타입
    • 들어가며 (7월 2일 공개)
  • 08 모듈과 네임스페이스
    • 들어가며 (7월 16일 공개)
  • 09 실제 프로젝트에서 사용하기
    • 들어가며 (7월 30일 공개)
  • 10 유용한 라이브러리 소개
    • 들어가며 (8월 13일 공개)
    • 맺으며
  • 부록 II : 자바스크립트 언어 생태계
    • ECMAScript 언어 표준과 TC39
    • TC39 프로세스
    • 실제 예시 - Array.prototype.includes
    • 타입스크립트와 ECMAScript
Powered by GitBook
On this page
  1. 06 타입 시스템 심화

6.6 맺으며

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

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

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

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

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

Previous6.5 서로소 유니온 타입Next들어가며 (7월 2일 공개)

Last updated 6 years ago