책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 자바
· ISBN : 9788966265046
· 쪽수 : 524쪽
· 출판일 : 2025-12-17
책 소개
타입스크립트는 자바스크립트의 한계를 보완할 잠재력을 지닌 정적 타입 기반의 슈퍼셋 언어입니다. 그러나 타입스크립트 또한 학습 곡선이 존재하며, 효과적으로 활용하기 위해서는 시간과 연습이 필요합니다.
이 책은 《이펙티브 C++》와 《이펙티브 자바》의 형식을 따른 실용서로, 해야 할 것과 하지 말아야 할 것, 그리고 언어에 대해 사고하는 법을 다룬 83가지 조언을 담고 있습니다. 저자 댄 밴더캄은 실제 예제를 통해 각 조언을 어떻게 적용할 수 있는지를 보여 줍니다.
이 책의 목표는 타입스크립트의 기본기를 익힌 초급 및 중급 개발자가 언어를 능숙하게 다루는 고급 사용자로 성장하도록 돕는 것이며, 타입스크립트 5에 맞춰 개정된 2판에서는 타입 수준 프로그래밍과 타입스크립트 레시피를 다루는 두 개 장이 추가되었습니다.
이 책에서 다루는 내용
? 타입스크립트 타입 시스템의 핵심 원리
? 최소한의 타입 주석으로 완전한 안전성을 확보하는 타입 추론
? 더 안전하고 이해하기 쉬운 코드를 위한 타입 설계
? 제네릭 타입과 타입 수준 프로그래밍을 활용해 복잡한 API를 모델링하는 방법
? 의존성과 타입 선언 파일의 동작 방식
? 성공적으로 자바스크립트 코드베이스를 타입스크립트로 전환하는 방법
목차
옮긴이의 글
추천의 글
2판 서문
초판 서문
1장 타입스크립트 소개
아이템 1 타입스크립트와 자바스크립트의 관계 이해하기
아이템 2 타입스크립트 설정 이해하기
아이템 3 코드 생성과 타입이 관계없음을 이해하기
아이템 4 구조적 타이핑에 익숙해지기
아이템 5 any 타입 지양하기
2장 타입스크립트의 타입 시스템
아이템 6 편집기를 사용해 타입 시스템 탐색하기
아이템 7 타입을 값의 집합이라고 생각하기
아이템 8 타입 공간과 값 공간의 심벌 구분하기
아이템 9 타입 단언 대신 타입 선언 사용하기
아이템 10 객체 래퍼 타입 피하기
아이템 11 타입 체크와 잉여 속성 체크 구분해서 사용하기
아이템 12 함수 표현식에 타입 적용하기
아이템 13 타입과 인터페이스의 차이점 이해하기
아이템 14 변경 관련 오류 방지를 위해 readonly 이해하기
아이템 15 타입 연산과 제네릭 사용으로 반복 줄이기
아이템 16 인덱스 시그니처보다 정확한 타입 사용하기
아이템 17 숫자 인덱스 시그니처 지양하기
3장 타입 추론과 제어 흐름 분석
아이템 18 추론 가능한 타입을 사용해 장황한 코드 방지하기
아이템 19 다른 타입에는 다른 변수 사용하기
아이템 20 변수의 타입이 결정되는 원리 이해하기
아이템 21 한꺼번에 객체 생성하기
아이템 22 타입 좁히기
아이템 23 일관성 있는 별칭 사용하기
아이템 24 타입 추론에 문맥이 어떻게 사용되는지 이해하기
아이템 25 타입의 진화 이해하기
아이템 26 함수형 기법과 라이브러리로 타입 흐름 유지하기
아이템 27 비동기 코드에는 콜백 대신 async 함수 사용하기
아이템 28 클래스와 커링 기법으로 새로운 추론 영역 만들기
4장 타입 설계
아이템 29 유효한 상태만 타입으로 표현하기
아이템 30 엄격하게 생성하고, 너그럽게 사용하기
아이템 31 문서에 타입 정보 쓰지 않기
아이템 32 타입 별칭에 null 또는 undefined 포함하지 않기
아이템 33 타입 주변에 null 값 배치하기
아이템 34 유니온의 인터페이스보다는 인터페이스의 유니온 사용하기
아이템 35 string 타입보다 더 구체적인 타입 사용하기
아이템 36 특수값에는 별도의 타입 사용하기
아이템 37 선택적 속성 지양하기
아이템 38 같은 타입의 매개변수를 반복하지 않기
아이템 39 타입 간 차이점을 모델링하기보다 같은 타입으로 통합하기
아이템 40 부정확한 타입보다는 미완성 타입 사용하기
아이템 41 해당 분야의 용어로 타입명 짓기
아이템 42 데이터 형태를 추측해서 타입 만들지 않기
5장 불안전한 any 타입
아이템 43 any 타입은 가능한 한 좁은 스코프에서만 사용하기
아이템 44 any를 구체적으로 변형해서 사용하기
아이템 45 함수 안으로 타입 단언문 감추기
아이템 46 타입을 모르는 경우 any 대신 unknown 사용하기
아이템 47 몽키 패치보다는 안전한 타입 사용하기
아이템 48 무결성 함정 피하기
아이템 49 타입 커버리지를 추적해 타입 안전성 유지하기
6장 제네릭과 타입 레벨 프로그래밍
아이템 50 제네릭이 타입 간 함수라고 생각하기
아이템 51 불필요한 타입 매개변수 지양하기
아이템 52 오버로딩 타입보다는 조건부 타입 사용하기
아이템 53 조건부 타입에 적용되는 유니온 영역을 제어하는 방법 숙지하기
아이템 54 DSL과 문자열의 관계를 모델링하기 위해 템플릿 리터럴 사용하기
아이템 55 타입을 위한 테스트 작성하기
아이템 56 타입이 표시되는 방식 관리하기
아이템 57 제네릭 타입 반복에는 꼬리 재귀 사용하기
아이템 58 복잡한 타입 대신 코드 생성 사용하기
7장 타입스크립트 기교
아이템 59 완전성 체크를 위해 never 타입 사용하기
아이템 60 객체를 순회하는 노하우 이해하기
아이템 61 레코드 타입을 사용해 값 동기화하기
아이템 62 가변 함수 모델링을 위해 나머지 매개변수와 튜플 타입 사용하기
아이템 63 배타적 OR를 모델링하기 위해 선택적 never 속성 사용하기
아이템 64 공식 명칭에는 상표 붙이기
8장 타입 선언과 @types
아이템 65 devDependencies에 typescript와 @types 추가하기
아이템 66 타입 선언과 관련된 세 가지 버전 이해하기
아이템 67 공개 API에 등장하는 모든 타입 익스포트하기
아이템 68 API 주석에 TSDoc 사용하기
아이템 69 콜백 함수에서 this에 대한 타입 제공하기
아이템 70 의존성 분리를 위해 미러 타입 사용하기
아이템 71 타입 개선을 위해 보강 기법 사용하기
9장 코드 작성 및 실행
아이템 72 타입스크립트 기능보다 ECMAScript 기능 사용하기
아이템 73 소스맵을 사용해 타입스크립트 디버깅하기
아이템 74 런타임에 타입 정보 재구성하기
아이템 75 DOM 계층 구조 이해하기
아이템 76 환경에 정확히 맞는 모델 만들기
아이템 77 타입 체크와 단위 테스트의 관계 이해하기
아이템 78 컴파일러 성능 살펴보기
10장 모던화와 마이그레이션
아이템 79 모던 자바스크립트로 작성하기
아이템 80 타입스크립트 도입 전에 @ts-check와 JSDoc으로 시험해 보기
아이템 81 allowJs로 타입스크립트와 자바스크립트 같이 사용하기
아이템 82 의존성 관계에 따라 모듈 단위로 전환하기
아이템 83 마이그레이션의 완성을 위해 noImplicitAny 설정하기
부록 초판과 2판의 아이템 대응표
책속에서
“그동안 타입스크립트가 발전하고 새로운 기능이 추가되었지만, 그 본질은 초판에서 다루는 내용에서 크게 벗어나지 않습니다. 책의 각 아이템이 ‘효율적으로’ 설명되기 위해서는 단순히 기능 동작을 이해하는 것 이상을 필요로 했습니다. 어떠한 패턴이 잘 동작하고 어떠한 것들이 무의미한지 시간과 공을 들여 익히고 사용해 보는 경험이 필요했습니다. 조건부 타입은 2019년에 도입되었기 때문에 초판에는 많은 내용을 싣지 못했습니다만, 이번 2판에서는 더욱 많은 내용을 다룰 수 있었습니다. 다양한 발전 가능성을 보여 준 템플릿 리터럴 타입은 지난 5년간 타입스크립트에 도입된 기능 중 가장 큰 기능이며, 아이템 54에서 다룹니다. 그리고 초판에서 제네릭과 타입 레벨 프로그래밍은 가볍게 언급하고 넘어갔지만, 이제는 6장에서 제대로 다루게 되었습니다.”
- ‘지은이의 글’ 중에서



















