본문으로 건너뛰기

책 소개

이펙티드 타입스크립트

effective-typescript

저자댄 밴더캄
옮긴이장원호

목차

1장 타입스크립트 알아보기

  • 1 타입스크립트와 자바스크립트의 관계 이해하기
  • 2 타입스크립트 설정 이해하기
  • 3 코드 생성과 타입이 관계없음을 이해하기
  • 4 구조적 타이핑에 익숙해지기
  • 5 any 타입 지양하기

2장 타입스크립트의 타입 시스템

  • 6 편집기를 사용하여 타입 시스템 탐색하기
  • 7 타입이 값들의 집합이라고 생각하기
  • 8 타입 공간과 값 공간의 심벌 구분하기
  • 9 타입 단언보다는 타입 선언을 사용하기
  • 10 객체 래퍼 타입 피하기
  • 11 잉여 속성 체크의 한계 인지하기
  • 12 함수 표현식에 타입 적용하기
  • 13 타입과 인터페이스의 차이점 알기
  • 14 타입 연산과 제너릭 사용으로 반복 줄이기
  • 15 동적 데이터에 인덱스 시그니처 사용하기
  • 16 number 인덱스 시그니처보다는 Array, 튜플, ArrayLike를 사용하기
  • 17 변경 관련된 오류 방지를 위해 readonly 사용하기
  • 18 매핑된 타입을 사용하여 값을 동기화하기

3장 타입 추론

  • 19 추론 가능한 타입을 사용해 장황한 코드 방지하기
  • 20 다른 타입에는 다른 변수 사용하기
  • 21 타입 넓히기
  • 22 타입 좁히기
  • 23 한꺼번에 객체 생성하기
  • 24 일관성 있는 별칭 사용하기
  • 25 비동기 코드에는 콜백 대신 async 함수 사용하기
  • 26 타입 추론에 문맥이 어떻게 사용되는지 이해하기
  • 27 함수형 기법과 라이브러리로 타입 흐름 유지하기

4장 타입 설계

  • 28 유효한 상태만 표현하는 타입을 지향하기
  • 29 사용할 때는 너그럽게, 생성할 때는 엄격하게
  • 30 문서에 타입 정보를 쓰지 않기
  • 31 타입 주변에 null 값 배치하기
  • 32 유니온의 인터페이스보다는 인터페이스의 유니온을 사용하기
  • 33 string 타입보다 더 구체적인 타입 사용하기
  • 34 부정확한 타입보다는 미완성 타입을 사용하기
  • 35 데이터가 아닌, API와 명세를 보고 타입 만들기
  • 36 해당 분야의 용어로 타입 이름 짓기
  • 37 공식 명칭에는 상표를 붙이기

5장 any 다루기

  • 38 any 타입은 가능한 한 좁은 범위에서만 사용하기
  • 39 any를 구체적으로 변형해서 사용하기
  • 40 함수 안으로 타입 단언문 감추기
  • 41 any의 진화를 이해하기
  • 42 모르는 타입의 값에는 any 대신 unknown을 사용하기
  • 43 몽키 패치보다는 안전한 타입을 사용하기
  • 44 타입 커버리지를 추적하여 타입 안전성 유지하기

6장 타입 선언과 @types

  • 45 devDependencies에 typescript와 @types 추가하기
  • 46 타입 선언과 관련된 세 가지 버전 이해하기
  • 47 공개 API에 등장하는 모든 타입을 익스포트하기
  • 48 API 주석에 TSDoc 사용하기
  • 49 콜백에서 this에 대한 타입 제공하기
  • 50 오버로딩 타입보다는 조건부 타입을 사용하기
  • 51 의존성 분리를 위해 미러 타입을 사용하기
  • 52 테스팅 타입의 함정에 주의하기

7장 코드를 작성하고 실행하기

  • 53 타입스크립트 기능보다는 ECMAScript 기능을 사용하기
  • 54 객체를 순회하는 노하우
  • 55 DOM 계층 구조 이해하기
  • 56 정보를 감추는 목적으로 private 사용하지 않기
  • 57 소스맵을 사용하여 타입스크립트 디버깅하기

8장 타입스크립트로 마이그레이션하기

  • 58 모던 자바스크립트로 작성하기
  • 59 타입스크립트 도입 전에 @ts-check와 JSDoc으로 시험해 보기
  • 60 allowJs로 타입스크립트와 자바스크립트 같이 사용하기
  • 61 의존성 관계에 따라 모듈 단위로 전환하기
  • 62 마이그레이션의 완성을 위해 noImplicitAny 설정하기

이 책을 선택한 이유

  • 이 책을 여기저기서 많이 들어는 봤지만 읽어야지, 읽어야지 하면서 미룬 적이 많았다.
  • 두어 달 전에 이 책을 기반으로 설명하는 멘토님의 강의를 듣고 더는 미룰 수 없다고 판단하여 읽게 되었다.
  • 이미 많은 프론트엔드 개발자들이 이 책을 읽은 것 같아서 더 늦기 전에 읽어보려 한다.