타입스크립트 파일들을 하나로 묶어서 그룹으로 만들고 그룹화된 파일을 자바스크립트로 변환하는데 그 과정에서 타입스크립틔 설정을 더해준다.
- 타입스크립트 딥다이브 설명 -
컴파일 컨텍스트는 근본적으로 집단에서 사용하는 용어이며 타입스크립트는 유효한 것을 분석하고 해석합니다. 어떤 파일의 정보와 함께 컴파일 컨텍스트에는 사용중인 컴파일러 옵션에 대한 정보가 들어있습니다. 이 논리그룹을 정의하는 가장 좋은 방법은 tsconfig.json 파일을 사용하는 것 입니다.
http://json.schemastore.org/tsconfig
요 링크를 들어가면 tsconfig 전체 구조를 볼 수 있다.
"compileOnSave": true, //이 프로젝트에서 파일을 save하면 컴파일 하겠다는 설정이 된것이다.
컴파일러 옵션에서 strict 옵션을 끄고 extends 에서 경로를 설정해주고 base.json에서 컴파일러옵션에 스트릭트 옵션을 켜줄 수 있다.
즉, 이런식으로 내가 덮어쓰거나 추가하고 싶은 설정만 가져와서 프로젝트를 완성도 있게 작업할 수 있다
typeRoots, types
여기서 npm i --saved-dev @types/react를 해주면?
이렇게 types가 생기고 타입스크립트를 쓸 수 있게 한다.
타입스크립트 2.0 부터 사용 가능해진 내장 타입 definition 시스템
아무 설정을 안하면?
types 를 사용하면 ?
[] 빈 배열을 넣는다는건 이 시스템을 이용하지 않겠다는 것입니다.
typeRoots 와 types 를 같이 사용하지 않습니다.
내가 작성한 타입스크립트가 어떤 런타임에서 실행이 되는 걸까?
target이 es3 설정이면 ?
const hello = () => {};
var function hello () {};
화살표 함수가 function으로 바뀐다.
strict는 무조건 true
엄격하게 타입을 검사하는 옵셥을 활성화 시킨다.
다 켜주자.
noimplicitAny
noimplicitThis
strictNullChecks
strictFunctionTypes
strictPropertyInitialization
strictBindCallApply
alwaysStrict
아직까지는 컴파일 옵션의 중요성과 필요성을 체감하지는 못하겠지만 이런 옵션들이 있다는 정도로만 알아두고 나중에 프로젝트를 할 때 도움이 되기를 바라면서 공부했다.!