📝

목차

들어가며

 
머리말과 저자목록
Notion 링크, PDF 파일 및 QR 코드

1. TypeScript란?

 
1.1 타입스크립트, 네가 궁금해!
1.2 타입스크립트가 왜 필요할까?
1.2.1 에러, 내가 미리 막을게
1.2.2 내가 도와줄게 - 자동완성, 가이드 역할

2. TypeScript 설치하기

 
2.1 TypeScript 설치하기
2.1.1 Node.js 설치
2.1.2 npm으로 TypeScript 설치
2.2 TypeScript 실행하기
2.2.1 TypeScript 파일 생성
2.2.2 TypeScript 컴파일러 실행
2.2.3 JavaScript 파일 실행
2.3 자동화 하기
2.3.1 ts-node 설치
2.4 오류 해결하기
2.4.1 ‘중복된 함수 구현입니다’

3. 자바스크립트가 가지지 못한 녀석, 타입

 
3.1 타입스크립트 타입 알아보기
3.1.1 타입 지정하는 방법 (타입 선언 및 타입 추론)
3.1.2 기본 타입 알아보기
3.1.2.1 Boolean
3.1.2.2 Number
3.1.2.3 String
3.1.2.4 Object
3.1.2.5 Array
3.1.2.6 Tuple
3.1.2.7 enum
3.1.2.8 any
3.1.2.9 void
3.1.2.10 undefined 과 null
3.1.2.11 never
3.2 타입 더 알아보기
3.2.1 리터럴 타입(Literal Types)
3.2.2 유니온 타입 (Union Types)
3.2.3 교차타입 (Intersection Types)
3.2.4 열거형 타입 (Enum)
3.2.5 함수
3.2.6 클래스 타입
3.2.7 타입 별칭
3.2.8 인터페이스에서의 타입 사용
3.2.9 제네릭 클래스에서의 타입 사용
3.3 유틸리티 타입 (Utility Types)
3.3.1 Readonly<Type>
3.3.2 Partial<Type>
3.3.3 Required<Type>
3.3.4 Record<Keys,Type>
3.3.5 Pick<Type, Keys>
3.3.6 Omit<Type,Keys>
3.3.7 Exclude<Type1, Type2>
3.3.8 NonNullable<Type>
3.3.9 ReturnType<Type>
3.3.10 Parameters<Type>

📒 3번 타입 퀴즈

4. 배열과 튜플

 
4.1 배열(Array)
4.1.1 배열이란?
4.1.2 배열 선언 방식
4.1.3 배열에 타입 지정하기
4.1.4 배열의 유용한 메서드
4.2 튜플(Tuple)
4.2.1 내겐 너무 낯선 튜플
4.2.2 ReadOnly
4.2.3 튜플을 사용하는 이유

📒 4번 배열과 튜플 퀴즈

5. 함수와 클래스

 
5.1 함수의 선언과 실행
5.1.1 함수에 타입을 선언하는 방법
5.1.2 선택적 매개변수
5.2 타입스크립트의 함수 표현
5.2.1 Call signature
5.2.2 this
5.2.2.1 명시적 this
5.2.2.2 콜백함수에서 this
5.2.2.3 화살표 함수의 this
5.2.3 Overloading
5.3 클래스
5.3.1 접근제한자
5.3.1.1 접근제한자의 종류
5.3.1.2 접근제한자를 사용하는 이유
5.3.1.3 생성자란?
5.3.1.4 Class를 활용한 객체 생성 방법
5.3.2 getter / setter 메서드
5.3.3 추상클래스
5.3.3.1 추상클래스란?
5.3.3.2 추상 메서드
5.3.3.3 추상클래스와 인터페이스
5.3.4 static
5.3.4.1 정적 프로퍼티 활용
  • Reference

📒 5번 함수와 클래스 퀴즈

6. 객체의 타입을 정하자, 인터페이스

 
6.1 인터페이스란?
6.2 인터페이스의 사용
6.2.1 변수의 타입을 인터페이스로 지정
6.2.2 함수에서 인터페이스 사용
6.2.2.1 함수의 파라미터를 인터페이스로 지정
6.2.2.2 함수의 구조를 인터페이스로 지정
6.2.3 클래스에서 인터페이스 사용
6.2.4 인터페이스 상속
6.3 인터페이스와 타입 별칭 비교
6.3.1 인터페이스는 선언 병합이 가능하다.
6.3.2 IDE 상에서 프리뷰가 다르게 나온다.
6.3.3 인터페이스는 객체 타입이어야 한다.
6.3.4 객체간 교차 타입

📒 6번 인터페이스 퀴즈

7. 유연하게 타입을 지정하려면 제네릭!

 
7.1 제네릭이란?
7.1.1 제네릭 소개
7.1.1.1 제네릭 정의
7.1.1.2 제네릭 기본
7.1.2 제네릭을 사용하는 이유
7.1.3 제네릭과 any의 차이
7.2 제네릭 타입
7.2.1 제네릭 인터페이스
7.2.2 제네릭 함수
7.2.2.1 기본적인 함수에서의 사용
7.2.2.2 특정 객체 타입에 대응하기
7.2.3 제네릭 클래스
7.2.4. 더 나아가기
7.2.4.1 열거형과 네임스페이스에서의 제네릭
7.2.4.2 화살표 함수에서의 제네릭 사용
7.3 제네릭 타입 제한(제약 조건)
7.3.1 프로퍼티 제약
7.3.2 콜백함수 제약 조건
7.3.3 keyof 제약 조건

📒 7번 제네릭 퀴즈

8. 타입스크립트로의 이주, 마이그레이션

 
8.1 마이그레이션을 해야 하는 이유
8.2 마이그레이션 가이드
8.2.1 디렉토리 설정하기
8.2.2 tsconfig.json 생성과 기본 설정
8.2.2.1 tsconfig.json 파일 생성하기
8.2.2.2 tsconfig.json 커스터마이징
8.2.2.3 include 와 exclude
8.2.2.4 compilerOptions
8.2.3 에러 방지
8.2.3.1 noImplicitReturns 설정하기
8.2.3.2 noImplicitAny 설정하기
8.2.4 TypeScript 파일로 변환하기
8.3 마이그레이션 이후
8.3.1 암묵적 타입 추론 금지! noImplicit
8.3.1.1 noImplicitAny
8.3.1.2 noImplicitReturns
8.3.1.3 noImplicitOverride
8.3.1.4 noImplicitThis
8.3.2 조금 더 엄격하게! strict
8.3.2.1 alwaysStrict
8.3.2.2 strictNullChecks
8.3.3 안 쓰는 건 없애자! noUnused
8.3.3.1 noUnusedLocals
8.3.3.2 noUnusedParameters