js만 쓰는 레거시 프로젝트에서 별도의 트랜스파일링 없이 TS의 타입체킹 이점만 챙기고 싶을때 사용하는 방법.
"js/ts.implicitProjectConfig.checkJs": false
jsconfig.json
파일을 생성하여 아래의 설정을 해 준다. 해당 파일이 위치한 곳이 Project Root가 된다.{
"compilerOptions": {
"checkJs": true
},
"exclude": ["node_modules", "**/node_modules/*"]
}
jsconfig.json
은 VS Code 를 위해 생겨난tsconfig.json
의 자식 느낌? 이다(see: https://code.visualstudio.com/docs/languages/jsconfig#_jsconfig-options). 타입체킹을 위해tsconfig.json
을 이용한다면 설정파일에서 거슬리는 에러가 나오며 제약이 좀 따를거다.. 애초에 ts란 컴파일을 위해 나온 언어니까.compilerOptions
라는 속성도jsconfig.json
이tsconfig.json
의 자식이기 때문에 존재하는거지 뭐 진짜 컴파일을 하겠다는 의미가 아니고, 그곳에서 타입체킹을 위해 사용한 사용한 유용한 속성을 js 환경에 좀 갖다쓰겠다는 의미로 해석하면 될것 같다(실제로 ts 옵션 사용 가능). ‘ts의 타입체킹 기능을 좀 사용하면서 여기가 js의 프로젝트 루트이다’ 나타내기 위해 VSCode가 정해놓은 파일 정도로 보면 될것 같다.