쉽게 시작하는 타입스크립트 : 믿고 보는 캡틴판교의 타입스크립트 입문서

쉽게 시작하는 타입스크립트 : 믿고 보는 캡틴판교의 타입스크립트 입문서

$36.00
저자

장기효

저자:장기효
10년동안개발을해왔고,개발에서얻는즐거움을지식공유와강의로승화시키는개발자다.네이버,삼성,LG등국내주요IT기업실무자들의프런트엔드개발선생님이며,온/오프라인수강생숫자가35,000명에이른다.평일에는회사에서서비스를개발하고,주말에는인프런멘토링과유튜브개발상담소로대학생과실무자에게도움이되는콘텐츠를나누고있다.저서로는『DoitVue.js입문』과『나는네이버프런트엔드개발자입니다』(공동집필)가있다.

목차


1장타입스크립트소개와배경
1.1타입스크립트란?
1.2왜타입스크립트를배워야할까요?
__1.2.1에러의사전방지
__1.2.2코드가이드및자동완성
1.3타입스크립트를시작하기어려운두가지이유
__1.3.1적지않은학습비용
__1.3.2운영중인서비스적용에대한부담감
1.4타입스크립트의현실적인대안JSDoc
1.5정리

2장타입스크립트시작하기
2.1타입스크립트학습을위한개발환경설정
__2.1.1크롬브라우저설치
__2.1.2Node.js와NPM설치
__2.1.3비주얼스튜디오코드설치
__2.1.4비주얼스튜디오코드테마와플러그인설치
2.2타입스크립트프로젝트시작
__2.2.1프로젝트폴더및타입스크립트파일생성하기
__2.2.2NPM설정파일및타입스크립트설치하기
__2.2.3타입스크립트컴파일명령어실행하기
__2.2.4컴파일된파일의실행결과확인하기
2.3정리

3장타입스크립트기초:변수와함수의타입정의
3.1변수에타입을정의하는방법
3.2기본타입
__3.2.1문자열타입:string
__3.2.2숫자타입:number
__3.2.3진위타입:boolean
__3.2.4객체타입:object
__3.2.5배열타입:Array
__3.2.6튜플타입:tuple
__3.2.7any
__3.2.8null과undefined
3.3함수에타입을정의하는방법
__3.3.1함수란?
__3.3.2함수의타입정의:파라미터와반환값
3.4타입스크립트함수의인자특징
3.5옵셔널파라미터
3.6정리

4장첫번째프로젝트:할일관리앱
4.1프로젝트내려받기및라이브러리설치
4.2프로젝트폴더구조
__4.2.1node_modules폴더
__4.2.2src폴더
__4.2.3.eslintrc.js파일
__4.2.4package.json파일
__4.2.5package-lock.json파일
__4.2.6tsconfig.json파일
4.3프로젝트로직
4.4프로젝트실습
4.5프로젝트실습풀이
__4.5.1함수의반환타입정의
__4.5.2할일목록변수인todoItems타입정의
__4.5.3함수파라미터타입구체화
__4.5.4addTwoTodoItems()함수구현
__4.5.5반복되는타입코드줄이기
4.6정리

5장인터페이스
5.1인터페이스란?
5.2인터페이스를이용한객체타입정의
5.3인터페이스를이용한함수타입정의
__5.3.1함수파라미터타입정의
__5.3.2함수반환타입정의
5.4인터페이스의옵션속성
5.5인터페이스상속
__5.5.1인터페이스의상속이란?
__5.5.2인터페이스를상속할때참고사항
5.6인터페이스를이용한인덱싱타입정의
__5.6.1배열인덱싱타입정의
__5.6.2객체인덱싱타입정의
__5.6.3인덱스시그니처란?
__5.6.4인덱스시그니처는언제쓸까?
5.7정리

6장연산자를사용한타입정의
6.1유니언타입
6.2유니언타입의장점
6.3유니언타입을사용할때주의할점
6.4인터섹션타입
6.5정리

7장타입별칭
7.1타입별칭이란?
7.2타입별칭과인터페이스의차이점
__7.2.1코드에디터에서표기방식차이
__7.2.2사용할수있는타입의차이
__7.2.3타입확장관점에서차이
7.3타입별칭은언제쓰는것이좋을까?
__7.3.1타입별칭으로만정의할수있는타입들
__7.3.2백엔드와의인터페이스정의
7.4정리

8장이넘
8.1이넘이란?
8.2숫자형이넘
8.3문자형이넘
8.4알아두면좋은이넘의특징
__8.4.1혼합이넘
__8.4.2다양한이넘속성값정의방식
__8.4.3const이넘
8.5정리

9장클래스
9.1클래스란?
9.2클래스기본문법
9.3클래스의상속
9.4타입스크립트의클래스
9.5클래스접근제어자
__9.5.1클래스접근제어자의필요성
__9.5.2클래스접근제어자:public,private,protected
__9.5.3클래스접근제어자로정수기문제해결하기
__9.5.4클래스접근제어자를사용할때주의해야할점
9.6정리

10장제네릭
10.1제네릭이란?
10.2제네릭기본문법
10.3왜제네릭을사용할까?
__10.3.1중복되는타입코드의문제점
__10.3.2any를쓰면되지않을까?
__10.3.3제네릭으로해결되는문제점
10.4인터페이스에제네릭사용하기
10.5제네릭의타입제약
__10.5.1extends를사용한타입제약
__10.5.2타입제약의특징
__10.5.3keyof를사용한타입제약
10.6제네릭을처음사용할때주의해야할사고방식
10.7정리

11장두번째프로젝트:전화번호부앱
11.1프로젝트환경구성
11.2프로젝트폴더구조
__11.2.1node_modules폴더
__11.2.2src폴더
__11.2.3.eslintrc.js
__11.2.4package.json,package-lock.json파일
__11.2.5tsconfig.json파일
11.3프로젝트로직
__11.3.1인터페이스코드
__11.3.2api함수
__11.3.3전화번호부클래스
11.4프로젝트실습
__11.4.1타입스크립트설정파일의noImplicitAny속성값변경
__11.4.2타입스크립트설정파일의strict속성값변경
11.5프로젝트실습풀이:첫번째
__11.5.1클래스속성타입정의
__11.5.2함수파라미터타입정의
__11.5.3API함수반환타입정의
11.6프로젝트실습풀이:두번째
__11.6.1함수반환타입정의
__11.6.2함수파라미터에이넘타입적용
11.7정리

12장타입추론
12.1타입추론이란?
12.2변수의타입추론과정
12.3함수의타입추론:반환타입
12.4함수의타입추론:파라미터타입
12.5인터페이스와제네릭의추론방식
12.6복잡한구조에서타입추론방식
12.7정리

13장타입단언
13.1타입단언이란?
13.2타입단언문법
__13.2.1타입단언의대상
__13.2.2타입단언중첩
__13.2.3타입단언을사용할때주의할점
13.3null아님보장연산자:!
13.4정리

14장타입가드
14.1타입가드란?
14.2왜타입가드가필요할까?
__14.2.1타입단언으로타입에러해결하기
__14.2.2타입단언으로해결했을때문제점
__14.2.3타입가드로문제점해결하기
14.3타입가드문법
__14.3.1typeof연산자
__14.3.2instanceof연산자
__14.3.3in연산자
14.4타입가드함수
__14.4.1타입가드함수예시
__14.4.2복잡한경우의타입가드예시
14.5구별된유니언타입
14.6switch문과연산자
__14.6.1switch문
__14.6.2논리?비교연산자
14.7정리

15장타입호환
15.1타입호환이란?
15.2다른언어와차이점
__15.2.1구조적타이핑
15.3객체타입의호환
15.4함수타입의호환
15.5이넘타입의호환
__15.5.1숫자형이넘과호환되는number타입
__15.5.2이넘타입간호환여부
15.6제네릭타입의호환
15.7정리

16장타입모듈
16.1모듈이란?
16.2자바스크립트모듈
__16.2.1자바스크립트의태생적한계
__16.2.2자바스크립트모듈화를위한시도들
16.3자바스크립트모듈화문법
__16.3.1import와export
__16.3.2exportdefault문법
__16.3.3importas문법
__16.3.4import*문법
__16.3.5export위치
16.4타입스크립트모듈
16.5타입스크립트모듈유효범위
16.6타입스크립트모듈화문법
__16.6.1importtype문법
__16.6.2importinlinetype문법
__16.6.3import와importtype중어떤문법을써야할까?
16.7모듈화전략:Barrel
16.8정리

17장유틸리티타입
17.1유틸리티타입이란?
17.2Pick유틸리티타입
__17.2.1Pick타입예시
__17.2.2Pick타입문법
17.3Omit유틸리티타입
__17.3.1Omit타입문법
__17.3.2Omit타입예시
__17.3.3Omit타입과Pick타입비교
17.4Partial유틸리티타입
__17.4.1Partial타입문법
__17.4.2Partial타입예시
17.5Exclude유틸리티타입
__17.5.1Exclude타입문법
__17.5.2Exclude타입예시
17.6Record유틸리티타입
__17.6.1Record타입첫번째예시
__17.6.2Record타입두번째예시
__17.6.3Record타입문법
17.7그외의유틸리티타입
17.8정리

18장맵드타입
18.1맵드타입첫번째예시:in
18.2map()API로이해하는맵드타입
18.3맵드타입두번째예시:keyof
18.4맵드타입을사용할때주의할점
18.5매핑수정자
18.6맵드타입으로직접유틸리티타입만들기
18.7정리

19장실전프로젝트환경구성
19.1타입스크립트설정파일
19.2타입스크립트설정파일생성
19.3타입스크립트설정파일의루트옵션
__19.3.1files
__19.3.2include
__19.3.3exclude
__19.3.4extends
19.4타입스크립트설정파일의컴파일러옵션
__19.4.1target
__19.4.2lib
__19.4.3strict
__19.4.4noImplicitAny

출판사 서평

타입스크립트의개념부터프로젝트실습까지
입문자에게가장필요한기본지식을설명한다!

처음에는타입스크립트를배우기위한개발환경을설정하고,자바스크립트코드를타입스크립트로바꿔보면서타입스크립트의기초를배운다.그리고변수에타입을직접정의해보면서기본타입9가지를맛본후,실무에서타입스크립트를더잘사용하기위해인터페이스,연산자,타입별칭,이넘,클래스,제네릭등의문법을배운다.마지막으로,실무에서에러를방지하고타입스크립트를더깊이이해하기위해타입추론,타입가드,타입호환,타입모듈,유틸리티타입,맵드타입등을심도있게배운다.이처럼타입스크립트의개념과사용법을배우면서전체적인흐름을잡아보자.돌아가거나헤맬일없이이책한권이면충분할것이다.

[작가의말]

타입스크립트가세상에나온지벌써10년이넘었습니다.10년이넘는긴시간동안누군가에게는숙련된개발자로보일수있는도구로,취업가산점의수단으로,코드유지보수를쉽게도와주는언어로사용되어왔습니다.저에게타입스크립트언어는코드를편하게작성할수있게도와주고개발시간을즐겁게만들어주는수단처럼느껴집니다.

첫번째저서이후로‘다시책을쓸수있을까?’라는고민을많이했습니다.여러출판사에서제온라인강의와온라인타입스크립트핸드북을보고출간을제의해주셨습니다.올바른지식과책에실리는정보의무게를잘알고있기에집필의고통을선뜻다시받아들이기가쉽지않았습니다.그러다집근처서점에들러당시출간된타입스크립트서적몇권을살펴보았습니다.대다수가번역서였고,입문자에게친숙한방식으로쉽게설명된책은없었습니다.‘아,한국어로잘다듬고쉽게정리한타입스크립트책이한권필요하겠구나’라는생각을했습니다.

그후2년이란시간이흘러지금의책이완성되었습니다.이책에서는‘타입스크립트가자바스크립트의슈퍼셋’이라는표현을사용하지않습니다.기술적으로는정확한표현일지몰라도슈퍼셋이라는단어에움찔할입문자가많기때문이죠.이책은슈퍼셋이라는표현대신‘자바스크립트에타입이추가된언어’라는표현을더선호합니다.그만큼처음타입스크립트를배우는사람혹은이미사용하고있지만제대로원리나개념을공부한적이없는사람을위해쉽게썼습니다.

이책에는단순한토이프로젝트부터UI복잡도가매우높은실무프로젝트까지타입스크립트로수많은코드를작성하면서느낀장점과특징을담았습니다.개인적인견해에치우친지식을나열하지않도록타입스크립트공식문서의정확한정보,커뮤니티의많은글과코드를검증해서내린결론을담으려고노력했습니다.이책에는단순히저한사람의지식이아니라수년간타입스크립트코드를함께작성한제동료와친구,지인,커뮤니티기여자들의생각과지식이담겨있습니다.그지식을제관점으로재해석하고타입스크립트라는언어가재미있게느껴졌으면하는바람에서정리한결과가바로이책입니다.