본문 바로가기
front/ts

The TypeScript Handbook

by juniKang 2022. 5. 11.

이 핸드북에 대해 

프로그래밍 커뮤니티에 소개된지 20년이 넘은 지금, 자바스크립트는 이제, 현존하는 가장 널리 알려진 크로스 플랫폼 언어이다. 웹페이지로 사소한 상호작용을 추가하는 작은 스크립팅 랭귀지로 시작해서, 자바스크립트는 모든 사이즈의 프론트와 백엔드 애플리케이션 둘 다에서 사용할 수 있는 랭귀지로 성장했다. 자바스크립트로 쓰여진 복잡한 프로그램들과, 사이즈, 범위는 기하급수적으로(exponentially) 성장했지만, 서로 다른 코드 단위 간의 관계(the relationships between different units of code)를 표현하는 자바스크립트 언어의 능력은 그렇지 않다(while.. , .. has not.). 자바스크립트의 꽤 기이한 런타임 구문분석(semantics)의 결합으로, 언어와 프로그램 복잡성간의 미스매치는 자바스크립트 개발을 규모에 맞게 관리하기 어려운 작업으로 만들었다. 

 

 프로그래머들이 작성하는 가장 일반적인 종류의 에러들은 타입에러로 묘사되었다 (: 값의 특정한 종류가 값의 다른 종류가 기대되는 곳에 사용되었을 때) 이건 간단한 오타(typos), 라이브러리의 API 표면을 이해하는데 실패, 런타임 동작에대한 잘못된 추정, 또는 다른 에러 때문에도 발생했다. 타입스크립트의 목표는 자바스크립트 프로그램을 위한 정적인 타입체커가 되는 것이다 - 다시 말하면, 너의 코드가 동작하기 전에 작동(static)하는 툴이자, 프로그램의 타입이 맞는지(타입체크) 확인하는(ensures) 툴이다.

 

자바스크립트에 대한 사적 지식 없이, 첫번째 언어로 타입스크립트를 사용하려는 의도로 타입스크립트로 들어왔다면, Microsoft Learn JavaScript tutorial 이나 JavaScript at the Mozilla WebDocs를 먼저 읽어보는 걸 추천한다. 다른 언어에 대한 경험이 있다면, 핸드북을 읽어서, 자바스크립트 구문을 꽤 빠르게 습득할 수 있을 것이다.

 

핸드북이 어떻게 구성되어 있는지

핸드북은 두 개의 섹션으로 구분되어 있다:

 

1. 핸드북
 타입 스크립트 핸드북은 모든 개발자를 위한 타입스크립트를 설명하기 위한 포괄적인 문서를 의도로 만들었다(is intended to be). 왼손에 들고 보는 네비게이션으로 처음부터 끝까지 핸드북을 읽을 수 있다.

각각의 챕터나 페이지가 주어진 개념에 대한 강한 이해(understanding of) 를 제공할 것으로 기대할 수 있다. 타입 스크립트 핸드북은 완벽한 언어 설명서가 아니라, 모든 언어의 기능과 동작에 대한 포괄적인(comprehensive) 가이드로 작성 되었다.

 

다 읽으면 다음을 할 수 있다:

  • 일반적으로 쓰이는 타입스크립트 구문과 패턴을 읽고 이해할 수 있다.
  • 중요한 컴파일러 옵션들의 이펙트를 설명할 수 있다.
  • 대부분의 경우에서 타입 시스템 동작을 정확하게 예측할 수 있다.

명료성과 간결성을 위해(In the interests of clarity and brevity), 핸드북의 메인 컨텐츠는 모든 특이 케이스나 기능이 동작하는 상세내용(minutiae)을 탐험하지는 않을 것이다. 참조 articles에서 특정합 개념의 더욱 상세한 부분을 찾을 수 있을 것이다.

 

2. 참조 파일들

 내비게이션의 핸드북 아래에 reference 섹션은 타입스크립트 동작의 특정 파트가 어떻게 동작하는지 높은 이해를 제공하기 위해 만들어졌다. 위아래로 찬찬히 읽을 수 있으나, 각각의 섹셕은 단일 개념의 더 깊은 설명을 제공하는 목적이다. - 연관성이 목적이 아니다.

 

목표가 아닌 것 (Non Goals)

핸드북은 짧은 시간에 간편히 읽을 수 있는 축약된 문서를 의도했다. 특정 토픽들은 간결성을 유지하기 위해 다루지 않을 것이다.

 

분명하게, 핸드북은 functions, classes, closures같은 자바스크립트 코어 기초들을 완벽하게 소개하지는 않는다. 적절한 경우(Where appropriate), 그 개념을 읽어보기 위해 사용할 수 있는 배경지식 링크들을 포함할 것이다.

 

핸드북은 또한 언어 특성의 대안이 될 것을 의도하지 않았다. 경우에 따라(In some cases), 특이 케이스나 동작의 공식적인 설명(formal descriptions)은 높은 레벨의, 이해하기 쉬운 설명을 위해 생략된다. 대신, 타입스크립트 동작의 여러 측명을 좀 더 정확하고 공식적으로 설명하기 위해 별도의 참조 페이지들이 있다. 참조 페이지들은 타입스크립트에 익숙하지 않은 독자를 위한 것이(not intended for) 아니므로, 그 페이지들은 아직 들어보지 못한, 좀 더 향상된 전문용어나 참조 토픽들을 사용할 수도 있다.

 

마지막으로, 핸드북은 필요한 경우를 제외하고, 다른 툴과 타입스크립트가 어떻게 상호작용하는지 다루지 않을 것이다.  webpack, rollup, parcel, react, babel, closure, lerna, rush, bazel, preact, vue, angular, svelte, jquery, yarn 이나 npm 으로 타입스크립트를 구성하는 방법과 같은 항목은 범위를 벗어난다 - 웹의 다른 곳에서 이런 자원들을 찾을 수 있다.

 

Get Started

The Basics를 시작하기 전에, 다음 소개 페이지 중 하나를 읽어보기 바란다. 이 소개들은 타입스크립트와 당신이 선호하는 프로그래밍 언어의 비슷한 점과 다른 점을 다루어서, 이러한 언어들에 대한 일반적인 오해를 해결한다.

'front > ts' 카테고리의 다른 글

[The Basics] Explicit Types  (0) 2022.05.16
[The Basics] Emitting with Errors  (0) 2022.05.16
[The Basics] tsc, the TypeScript compiler  (0) 2022.05.13
[The Basics] Non-exception Failures  (0) 2022.05.13
TypeScript for JavaScript Programmers  (0) 2022.04.28

댓글