일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 웹
- BFS
- 블록체인
- 이슈
- VUE
- 리액트
- 컴퓨터공학
- TypeScript
- 타입스크립트
- 백엔드
- 알고리즘
- 백준
- 자바스크립트
- 이더리움
- AWS
- 쿠버네티스
- HTML
- CSS
- kubernetes
- 솔리디티
- 프론트엔드
- react
- es6
- docker
- 파이썬
- next.js
- 가상화
- JavaScript
- 클라우드
- k8s
Archives
- Today
- Total
즐겁게, 코드
tsc 옵션 제대로 사용하기 본문
타입스크립트 코드를 트랜스파일하기 위해서는 tsc 커맨드를 사용합니다.
// index.ts
const name: string = "chanmin";
$ tsc index.ts
// index.js
var name = "chanmin";
다만 위의 트랜스파일 결과물은 var
키워드를 사용하는 구버전 자바스크립트 코드입니다.
어떻게 하면 이 끔찍한 var
에서 벗어날 수 있을까요?
⚙️ tsconfig 설정
타입스크립트를 조금 잘 아는 분이시라면 tsconfig 파일에서 타겟 옵션을 지정할 수 있다는 것도 알고 계실 겁니다.
// tsconfig.json
{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig.json to read more about this file */
/* Basic Options */
"target": "ES2016",
"module": "commonjs",
}
}
타겟을 ES2016 이상으로 바꾸고 다시 트랜스파일을 해볼까요?
// index.ts
const name: string = "chanmin";
$ tsc index.ts
// index.js
var name = "chanmin";
하지만 결과물은 여전히 동일한 이전 자바스크립트 코드입니다.
왜 tsconfig 설정이 반영되지 않은 걸까요?
바로 tsc
옵션을 잘못 사용했기 때문입니다.
🛠 tsc CLI 옵션
1. tsc 를 실행하면 tsconfig 파일이 존재하는 경로부터 모든 하위 경로의 타입스크립트 코드를 tsconfig 옵션대로 트랜스파일합니다.
2. tsc (파일명) 을 실행하면 tsconfig 파일이 존재하는 경로에 파일이 존재하는지 확인한 후, 기본 컴파일러 옵션으로 트랜스파일합니다.
얼추 감이 오시나요?
위에서 index.ts 파일을 트랜스파일할때 tsc
가 아닌 tsc index.ts
라는 명령을 사용했는데요, 바로 이 점때문에 tsconfig 설정은 무시되고 기본 컴파일러 옵션(ES2015) 으로 트랜스파일이 진행된 것입니다.
어렵사리 설정한 tsconfig 옵션인 만큼, 제대로 사용할 수 있도록 합시다!
🎯 요약
- 인자 없이
tsc
만으로 트랜스파일을 수행하면 tsconfig 설정이 반영되지만,tsc (파일명)
처럼 특정 파일명을 지정하면 tsconfig의 지원을 받을 수 없다.
📝 참고
타입스크립트 공식 문서 중 - www.typescriptlang.org/docs/handbook/compiler-options.html
반응형
'🎨 프론트엔드 > Typescript' 카테고리의 다른 글
유틸리티 타입 - Partial, Required, Pick 사용하기 (1) | 2021.06.04 |
---|---|
타입스크립트에서 이벤트 객체 타입 지정하기 (2) | 2021.05.29 |
타입스크립트로 리액트 컴포넌트 구성해보기 (0) | 2021.05.21 |
배열, 튜플, 열거형 (0) | 2021.03.17 |
타입스크립트 프로젝트 세팅하기 (0) | 2021.01.05 |
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆