📄️ 아이템 1 타입스크립트와 자바스크립트의 관계 이해하기
타입스크립트는 자바스크립트의 상위 집합이다.
📄️ 아이템 2 타입스크립트 설정 이해하기
타입스크립트 설정은 커맨드 라인보다는 tsconfig.json 을 사용하는 것이 좋다.
📄️ 아이템 3 코드 생성과 타입이 관계없음을 이해하기
타입스크립트 컴파일러는 두 가지 역할을 수행한다.
📄️ 아이템 4 구조적 타이핑에 익숙해지기
자바스크립트가 덕 타이핑 기반이고 타입스크립트가 이를 모델링하기 위해 구조적 타이핑을 사용함을 이해해야 한다.
📄️ 아이템 5 any 타입 지양하기
any 타입을 사용하면 타입 체커와 타입스크립트 언어 서비스를 무력화시켜버린다. any 타입은 진짜 문제점을 감추며, 개발 경험을 나쁘게 하고, 타입 시스템의 신뢰도를 떨어뜨린다. 최대한 사용을 피하자.
📄️ 아이템 6 편집기를 사용하여 타입 시스템 탐색하기
타입스크립트를 설치하면 다음 두 가지를 실행할 수 있다.
📄️ 아이템 7 타입이 값들의 집합이라고 생각하기
코드가 실행되기 전, 타입스크립트가 오류를 체크하는 순간에는 “타입”을 가지고 있다. “할당 가능한 값들의 집합”이 타입이라고 생각하면 된다. 이 집합은 타입의 “범위”라고 부르기도 한다.
📄️ 아이템 8 타입 공간과 값 공간의 심벌 구분하기
타입스크립트의 심벌(symbol)은 타입 공간이나 값 공간 중의 한 곳에 존재한다.
📄️ 아이템 9 타입 단언보다는 타입 선언을 사용하기
타입 선언은 할당되는 값이 해당 인터페이스를 만족하는지 검사한다. 타입 단언은 강제로 타입을 지정했으니 타입 체커에게 오류를 무시하라고 하는 것이다.
📄️ 아이템 10 객체 래퍼 타입 피하기
charAt 은 string 의 메서드가 아니며, string 을 사용할 때 자바스크립트 내부적으로 많은 동작이 일어난다. string ‘기본형’에는 메서드가 없지만, 자바스크립트에는 메서드를 가지는 String ‘객체’ 타입이 정의되어 있다. 자바스크립트는 기본형과 객체 타입을 서로 자유롭게 변환한다. string 기본형에 charAt 같은 메서드를 사용할 때, 자바스크립트는 기본형을 String 객체로 래핑(wrap)하고, 메서드를 호출하고, 마지막에 래핑한 객체를 버린다.
📄️ 아이템 11 잉여 속성 체크의 한계 인지하기
대부분 잉여가 아닌 ‘초과’로 번역한다.
📄️ 아이템 12 함수 표현식에 타입 적용하기
타입스크립트에서는 함수 표현식을 사용하는 것이 좋다. 함수의 매개변수부터 반환값까지 전체를 함수 타입으로 선언하여 함수 표현식에 재사용할 수 있기 때문이다.
📄️ 아이템 13 타입과 인터페이스의 차이점 알기
인터페이스는 유니온 타입과 같은 복잡한 타입을 확장하지 못한다. 복잡한 타입을 확장하고 싶으면 타입과 & 를 사용해야 한다.
📄️ 아이템 14 타입 연산과 제너릭 사용으로 반복 줄이기
반복을 줄이는 가장 간단한 방법은 타입에 이름을 붙이는 것이다.
📄️ 아이템 15 동적 데이터에 인덱스 시그니처 사용하기
타입에 ‘인덱스 시그니처’를 명시하여 유연하게 매핑을 표현할 수 있다.