tsconfig 란 ?
- Typescript로 짜여진 코드는 Javascript로 변환해 줄 트랜스파일러(컴파일러)가 필요하다.
- 이러한 컴파일 과정에서 사용자가 필요한 여러 옵션을 설정할 수 있다.
- 그러한 파일이 tsconfig.json이다.
- npx tsc --init 커맨드를 통해 기본형태를 생성할 수 있다.
tsconfig.json 컴파일 옵션 정리
옵션에 대한 자세한 정보는 여기에서 확인할 수 있다.
사용한 옵션
tsconfig.json
{
"compilerOptions": {
/* 기본 옵션 */
"target": "es5", /* 사용할 특정 ECMAScript 버전 설정: 'ES3' (기본), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 혹은 'ESNEXT'. */
"module": "es2015", /* 모듈을 위한 코드 생성 설정: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
"jsx": "react", /* JSX 코드 생성 설정: 'preserve', 'react-native', 혹은 'react'. */
"declaration": true, /* '.d.ts' 파일 생성 여부. */
"outDir": "./dist/", /* 해당 디렉토리로 결과 구조를 보냅니다. */
/* 엄격한 타입-확인 옵션 */
"strict": true, /* 모든 엄격한 타입-체킹 옵션 활성화 여부 */
/* 모듈 해석 옵션 */
"moduleResolution": "node", /* 모듈 해석 방법 설정: 'node' (Node.js) 혹은 'classic' (TypeScript pre-1.6). */
"baseUrl": "./", /* non-absolute한 모듈 이름을 처리할 기준 디렉토리 */
"typeRoots": ["./src/types", "./node_modules/@types"], /* 타입 정의를 포함할 폴더 목록, 설정 안 할 시 기본적으로 ./node_modules/@types로 설정 */
"esModuleInterop": true, /* 모든 imports에 대한 namespace 생성을 통해 CommonJS와 ES Modules 간의 상호 운용성이 생기게할 지 여부, 'allowSyntheticDefaultImports'를 암시적으로 승인합니다. */
"inlineSourceMap": true, /* 분리된 파일을 가지고 있는 대신, 단일 파일을 소스 맵과 가지고 있을 지 여부 */
/* 추가적 옵션 */
"skipLibCheck": true, /* 정의 파일의 타입 확인을 건너 뛸 지 여부 */
"forceConsistentCasingInFileNames": true, /* 같은 파일에 대한 일관되지 않은 참조를 허용하지 않을 지 여부 */
"paths": {
"@/*": ["src/*"],
"@api/*": ["src/api/*"],
"@hooks/*": ["src/hooks/*"],
"@components/*": ["src/components/*"],
"@styles/*": ["src/styles/*"],
"@static/*": ["stc/static/*"],
"@utils/*": ["src/utils/*"],
"@types/*": ["src/types/*"],
"@layouts/*": ["src/layouts/*"],
"@pages/*": ["src/pages/*"],
}
},
"include": ["./src/**/*"],
"exclude": ["node_modules"],
"typeRoots": ["./src/types", "./node_modules/@types"]
}
"target": "es5"
- 사용할 특정 ECMAScript 버전 설정
- ES5에는 화살표 함수가 없기 때문에 일반 함수형식으로 변경됩니다.
- ex) ()=>null -> function(){return null}
"module": "es2015"
- ES6환경에 맞춘코드 생성 설정
"moduleResolution" : "node"
- non-relative import를 위해 "node"를 사용
- 참조하는 방법은 여기를 참조하면된다.
이외의 설정을 주석을 통해 충분히 이해할 수 있으며 추가적인 설정은 이곳을 통해 알 수 있다.
'프론트 엔드 > React' 카테고리의 다른 글
[Typescript & React & Webpack 환경설정 2편] Babel 설정 (0) | 2021.08.28 |
---|---|
Typescript && Webpack && Babel이란 무엇일까 - 웹개발 필수 라이브러리 (0) | 2021.08.28 |
React Redux 상태관리 - 장바구니 만들기 (2) | 2021.08.28 |