
ts helloworld.ts
즉, tsc helloworld.ts 라고 지정하는 순간 tsconfig.json 은 무시된다.
tsconfig.json 전역 속성tsconfig.json 파일의 최상단에 위치한 속성들을 일컬음{
// TypeScript 컴파일러의 옵션들을 지정하는 속성
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"sourceMap": true
// ... 무수히 많은 속성들
},
// 컴파일할 파일들의 개별 목록을 지정하는 속성
"files": ["src/main.ts", "src/utils.ts"],
// 컴파일할 파일들을 지정하는 속성 (와일드 카드 패턴으로 묶어 표현)
"include": [ "src/**/*.ts" ],
// 컴파일 대상에서 제외할 파일들을 지정하는 속성
"exclude": [ "node_modules", "**/*.test.ts" ],
// 다른 tsconfig.json 파일을 상속받아서 설정을 재사용할 수 있게 해주는 속성
"extends": "./configs/base.json",
// 여러 개의 하위 프로젝트로 구성된 프로젝트의 의존 관계를 지정하는 속성
"references": [
{ "path": "./subproject1" },
{ "path": "./subproject2" }
],
// 타입 습득(type acquisition)과 관련된 옵션들을 지정하는 속성
"typeAcquisition": {
"enable": true,
"include": ["jquery"],
"exclude": ["react"]
},
// watch 모드와 관련된 옵션들을 지정하는 속성
"watchOptions": {
"watchFile": "useFsEvents",
"watchDirectory": "useFsEvents",
"fallbackPolling": "dynamicPriority"
}
}
tsc FILE.ts -w or tsc FILE.ts --watchtsc --init -> tsc --watch or tsc -w새롭게 알게 된(사용해 본) 옵션들은 추후 추가
tsc --init"exclude": []node_modules는 자동으로 excludenode_modules는 꼭 추가하여 의존성 모듈 내부 ts 파일이 컴파일 되지 않게 해야함"include": []"files": []compilerOptions"target""module" (추후 업데이트)"lib""allowJs" , "checkJs"allowJs: 자바스크립트 파일을 타입스크립트가 컴파일checkJs: 타입스크립트가 자바스크립트 파일을 컴파일하지는 않으나, 구문을 검사하고 잠재적 오류를 보고"jsx""declaration".d.ts 파일 생성"sourceMap"sourceMap옵션을 사용하면 .js.map파일이 만들어짐


.ts파일에 직접 중단점 설정도 가능"outFile""outDir" , "rootDir" 입력 파일이 어디에 있는지 출력 파일이 어디에 생성되는지 설정"outDir": 타입스크립트 컴파일러에게 생성된 파일을 어디에 저장해야 하는지 명시src폴더 및에 하위 폴더가 있고, 그 하위 폴더에 ts파일이 있어도, tsc컴파일을 진행하면 그 폴더 구조 까지 복사됨.
|
|
|---|---|
| before | after |
"rootDir": tsc에게 소스코드가 있는 루트 폴더가 어디인지 명시rootDir사용하게 되면, tsc가 해당 src 폴더만 보지 않음"removeComments""noEmit""noEmitOnError""strict""noImplicitAny"~ implicitly has an 'any' type 에러메시지를 띄운다"strictNullChecks"null이 될 수 있는 값에 접근하고 작업할 때 엄격한 검사!를 붙이면 에러를 무시할 수 있다.!: 개발자가 tsc에게 이 연산을 하면 null이 아닌 값이 반환된다고 알려줌if조건문으로 검사하는 것이 안전하다."strictFunctionTypes" (추후 업데이트)"strictBindCallApply"bind, call, apply함수가 호출되면 설정한 내용 엄격한 검사"noUnusedLocals""noUnusedParameters"function add(n1: number, n2: number) {
if(n1 + n2 > 0) {
return n1 + n2;
}
}
// tsc가 이 함수의 모든 분기가 반환문으로 이어지는게 아니라는 것을 감지하고 경고 메시지 출력
// 아무것도 반환하지 않더라도 return을 명시해야함(그냥 생략하는 것을 허용하지 않음)
// tsconfig에 맞게 해결
function add(n1: number, n2: number) {
if(n1 + n2 > 0) {
return n1 + n2;
}
return; // 경고 메시지 해결
}
"noFallthroughCasesInSwitch"break 키워드를 사용하지 않았을 시 에러 메시지 활성화