컴파일러

zimablue·2023년 8월 14일

typescript

목록 보기
5/18

자바스크립트 파일로 컴파일링

tsc 파일명.ts

폴더 내 모든 파일 컴파일링

tsc

감시 모드로 컴파일링

tsc -w 파일명.ts

폴더 내 모든 파일 감시 모드로 컴파일링

tsc -w

이후 저장하면 자동 컴파일링됩니다.
ctrl + c 누르면 감시모드 종료합니다.





tsconfig.json(타입스크립트 설정 파일)

타입스크립트를 자바스크립트로 변환할 때의 설정을 정의해놓는 파일입니다.

tsconfig.json 파일 생성

tsc --init



files

files를 사용하면 프로그램에 포함할 파일의 허용 목록을 특정할 수 있습니다.

{
	"compilerOptions": {},
  	"files": ["파일명.ts", "파일명.ts"] 
}



includes, exclude

includes는 컴파일링할 파일의 범위를 지정합니다.
exclude는 컴파일링을 제외할 파일을 특정합니다.

{
	"compilerOptions": {},
  	"include": ["폴더명"] 
  	"exclude": ["제외할파일명.ts", "node_modules"]
}



files

TypeScript가 컴파일된 JavaScript 파일을 내보낼 위치를 지정할 수 있습니다.

{
	"compilerOptions": {
    	"outDir": "./dist"
    }
}



target

TypeScript를 컴파일한 JavaScript의 버전을 제어하는 옵션입니다.

{
	"compilerOptions": {
    	"target": "es6"
    }
}



strict

strict라는 하나의 프로퍼티를 true로 설정하는 것만으로 TypeScript 전체의 타입 검사 추가 규칙, 제약 조건이 활성화됩니다.

{
	"compilerOptions": {
    	"strict": true
    }
}

noImplicitAny

파라미터가 암시적 any 타입을 가지면 오류를 출력합니다.

{
	"compilerOptions": {
		"noImplicitAny": true
    }
}

strictNullChecks

null, false, undefined의 정의와 역할을 제어합니다.

{
	"compilerOptions": {
		"strictNullChecks": true
    }
}
let users: string[] = ['you', 'me']

//Type null is not assignable to type 'string[]'
users = null;
//Type undefined is not assignable to type 'string[]'
users = undefined; 



checkJs

TypeScript가 오류를 보고할 수 있습니다.
JavaScript에서 수행되며 JS 파일에 오류가 있을 경우 문제가 어디에 있는지를 알려주는 기능입니다.

{
	"compilerOptions": {
		"checkJs": true
    }
}



sourceMap

TypeScript에 소스 맵의 생성 여부를 지시할 수 있습니다.
sourceMap을 true로 설정하면 파일명.js.map 이 생성됩니다.

{
	"compilerOptions": {
		"sourceMap": true
    }
}



noEmit

noEmit 옵션을 켜면 타입 검사는 계속하면서도 JS 파일을 만드는 컴파일링을 하지 않게 됩니다.

{
	"compilerOptions": {
		"noEmit": true
    }
}



noEmitOnError

컴파일 도중에 오류가 생기면 즉 타입 검사에 문제가 있으면 TypeScript가 새로운 파일을 만들지 않게 하는 옵션입니다.

{
	"compilerOptions": {
		"noEmitOnError": true
    }
}



lib

타겟 런타임 환경을 설명하는 번들 라이브러리 선언 파일을 지정할 수 있습니다.
주석처리 되어 있다면 기본값을 사용합니다.

{
	"compilerOptions": {
		"lib": []
    }
}

0개의 댓글