What I Learnd/TIL
TIL - TypeScript 컴파일러, tsc 설정변경!
키싸
2023. 7. 25. 14:55
컴파일러란 특정 트로그래밍 언어가 *정적 언어로서의 정체성을 유지할 수 있게 하는 도구로,
프로그래밍 언어로 작성된 소스 코드를 다른 프로그래밍 언어로 변환한다.
사전 의미를 생각하면 컴퓨터 언어를 다른 프로그래밍 언어로 엮어낸다고 이해할 수 있겠다?
tsc = TypeScript Compiler
*정적언어(=컴파일 언어)는 기계어로 변환되어야 하고
동적언어(=인터프리터 언어)는 엔진이 코드를 한줄씩 실행하면서 동적으로 해석을 하기 때문에 미리 오류 검출 어려워지고 실행하다가 오류가 난다(Runtime Error)
→ JavaScript는 동적언어(인터프리터 언어)이기 때문에 기계어로 변환 될 필요가 없다.
tsc 주요 명령어
tsc --init
: tsconfig.json이 생성
tsc index.ts
: index.ts를 컴파일
: .ts는 TypeScript 파일의 확장자
tsc src/*.ts
: src 디렉토리 안에 있는 모든 TypeScript 파일을 컴파일
tsc index.js --declaration --emitDeclarationOnly
: @types 패키지를 위한**.d.ts 파일 생성**
: TypeScript로 작성된 모듈이 아니라 JavaScript로 작성된 모듈에 타입 선언을 제공할 때 유용
Documentation - tsc CLI Options
A very high-level overview of the CLI compiler options for tsc
www.typescriptlang.org
tsconfig.json
- tsc --init 명령 후 생성되는 파일
- TypeScript 프로젝트 설정 파일
- 주로 프로젝트의 컴파일 옵션 및 이력 파일들을 정의
설정 변경
- compilerOptions - strict
- 엄격한 타입검사 옵션을 모두 활성화
- strictNullChecks
- strictFuntionTypes
- strictBindCallApply
- strictPropertyInitialization
- noImplictAny
- 함수의 인자 또는 변수의 타입이 영시적으로 선언되지 않은경우 컴파일러가 자동으로 any 타입 부여하지 않도록 세팅
- 개발자가 누락된 타입선언을 확인하고 명시적으로 타입을 선언 가능
- noImplicitThis
- alwaysStrict
- compilerOptions - sourceMap
- 컴파일된 JavaScript 파일에 대한 소스 맵을 생성
- 실행 중 에러가 발생했을 때 TyptScript 소스 코드의 위치를 바로 확인 가능
- 코드 디버깅에 큰 도움! 개발환경에서 특히 반드시 true로 설정 !프로덕션 환경에서는 용량이나 성능상의 이유로 sourceMap을 사용하지 않는 것이 better.
→ 위 옵션들은 모두 true 설정 권장
include, exclude 옵션
tsc가 컴파일을 할 때 포함하거나 제외할 파일이나 디텍터리 지정 옵션
"include": ["src/**/*"]
: src 디렉토리 밑의 파일들을 컴파일 하겠다는 뜻
"exclude": ["node_modules", "dist"]
:node_modules, dist 디렉토리 밑의 파일들은 컴파일 대상에서 제외하겠다는 뜻