js만 쓰는 레거시 프로젝트에서 별도의 트랜스파일링 없이 TS의 타입체킹 이점만 챙기고 싶을때 사용하는 방법.

  1. VSCode 의 typescript 패키지를 깔고 아래의 옵션을 적용해준다. 별도의 타입체킹 옵션 설정이 tsconfig.json 문법과 조금 괴리가 있어서 실제 사용할지는 의문
"js/ts.implicitProjectConfig.checkJs": false
  1. 프로젝트 루트에 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.jsontsconfig.json 의 자식이기 때문에 존재하는거지 뭐 진짜 컴파일을 하겠다는 의미가 아니고, 그곳에서 타입체킹을 위해 사용한 사용한 유용한 속성을 js 환경에 좀 갖다쓰겠다는 의미로 해석하면 될것 같다(실제로 ts 옵션 사용 가능). ‘ts의 타입체킹 기능을 좀 사용하면서 여기가 js의 프로젝트 루트이다’ 나타내기 위해 VSCode가 정해놓은 파일 정도로 보면 될것 같다.