-타입스크립트 프로젝트는 타입스크립트 컴파일러의 설정 파일인 tsconfig.json파일이 있어야 다음과 같은 명령어로 tsconfig.json을 만들 수 있다.
ts --init
- 위 명령어로 만들어진 tsconfig.json을 보면 실제 개발을 진행하는데 필요한 많은 옵션이 들어있다
- 보통은 프로젝트에 필요한 옵션만 설정해서 간략하게 한다.
- include 항목에서 [src/**/*]은 src디렉터리는 물론 src 하위 디렉터리에 있는 모든 파일을 컴파일 대상으로 포함한다는 의미이다.
tsconfig.json 살펴보기
1 ) module
- 타입스크립트 소스코드가 컴파일되어 만들어진 ES5 자바스크립트 코드는 웹 브라우저와 Node.js 양쪽에서 모두 동작해야 한다 그런데 웹 브라우저와 Node.js는 물리적으로 동작하는 방식이 달라서 여러 개의 파일로 분할된 자바스크립트 코드 또한 웹 브라우저와 Node.js는 물리적으로 동작하는 방식이 달라서 여러 개의 파일로 분할된 자바스크립트 코드 또한 웹 브라우저와 Node.js 양쪽에서 다르게 동작한다.
-자바스크립트 모듈은 웹 브라우저에서는 AMD 방식으로 동작한다
-자바스크립트 모듈은 Node.js 에서는 CommonJs 방식으로 동작한다.
- 따라서 tsconfig.json 파일에서 compiler Options 항목의 module 키는 동작 대상 플랫폼이 웹 브라우저인지 Node.js 인지 구분해 그에 맞는 모듈 방식으로 컴파일 하려는 목적으로 설정한다.
2) moduleResolution
- module키 값이 common.js 이면 Node.js에서 동작하는 것을 의미하므로 moduleResolution 키 값은 항상 node로 설정한다
- 반면에 amd이면 moduleResolution 키 값은 classic으로 설정한다.
3) target
- target 키에는 트랜스파일할 대상 자바스크립트 버전을 설치한다 대부분 'es5
를 키 값으로 설정한다.
4) baseUrl과 outDir
- baseUrl과 outDir 키에는 트랜스파일된 ES5 자바스크립트 파일을 저장하는 디렉터리를 설정한다
- tsc는 tsconfig.json 파일이 있는 디렉터리에서 실행된다 따라서 현재 디렉터리를 의미하는 "./
로 baseUrl 키 값을 설정하는 것이 보통이다.
- outDir은 baseUrl 설정 값을 기준으로 했을 때 하위 디렉터리의 이름이다 dist라는 값을 주면 빌드된 결과가 dist 디렉터리에 만들어진다.
4) paths
- paths는 소스 파일의 import 문에서 from 부분을 해석할 때 찾아야 하는 디렉터리를 설정한다
- import 문이 찾아야 하는 소스가 외부 패키지이면 node_modules 디렉터리에서 찾아야 하므로 키 값에 node_modules/*도 포함한다.
5) esModuleInterop
- 오픈 소스 자바스크립트 라이브러리 중에는 '웹 브라우저에서 동작한다는 것을 가정으로 만들어진 것이다 이들은 commonJs 방식으로 동작하는 타입스크립트 코드에 혼란을 줄 수 있다.
-예를 들면 chance 가 바로 AMD 방식을 전제로 해서 구현된 라이브러리이다
- chance 패키지가 동작하려면 esModuleInterop 키 값을 반드시 true로 해주어야 한다
5) sourceMap
- sourceMap 키 값이 true이면 트랜스파일 디렉터리에는 .js 파일 이외에도 js.map파일이 만들어진다
- sourceMap 파일은 변화된 자바스크립트 코드가 타입스크립트 코드의 어디에 해당하는 지를 알려준다
- sourceMap 파일은 주로 디버깅 할때 사용한다
6) downleveliteration
- 생성기 구문이 정상적으로 동작하면 downleveliteration 키 값을 반드시 true로 한다
7) nolmplicitAny
- 타입스크립트 컴파일러는 기본적으로 f(a, b) 처럼 매개변수 a, b 에 타입을 명시하지 않은 코드일 경우
f(a: any, b: any)처럼 암시적으로 any타이블 설정한 것으로 간주한다.
- 이런 형태의 코드는 타입스크립트 언어의 장점을 사용하는 것이 아니므로 'a' 매개변수에는 암식으로 'any'형식이 포함됩니다 라는 오류가 발생한다
- 이 오류는 타입스크립트를 처음 배우는 사람을 혼란스럽게 하므로 우선 nolmplicitAny 키를 설정한다.
-false로 설정할 경우 타입을 지정하지 않더라도 문제로 인식하지 않는다 문제로 인식하기 위해서는 키 값을 'true'로 바꾸면 된다.
'타입스크립트' 카테고리의 다른 글
[Typescript] - 함수 표현식 전체에 타입 구문 지정하기 (0) | 2022.12.10 |
---|---|
[Typescript] - declare와 d.ts 파일 (0) | 2022.11.19 |
[TypeScript] - is 키워드 (0) | 2022.10.13 |
[TypeScript] - 함수 오버로딩 (0) | 2022.09.30 |
[Typescript] - const assertion ( + enum) (0) | 2022.09.15 |