{
	...
	"referencesDefinition": {
		"properties": {
			"references": {
				"type": "array",
				"description": "Referenced projects. Requires TypeScript version 3.0 or later.",
				"items": {
					"type": "object",
					"description": "Project reference.",
					"properties": {
						"path": {
							"type": "string",
							"description": "Path to referenced tsconfig or to folder containing tsconfig."
						}
          }
        }
      }
    }
  },
	...
}

references 의 필요성

보통 소스 파일의 구조가 아래와 같다면,

src
├── client
│   ├── index.ts
│   └── tsconfig.json
├── server
│   ├── index.ts
│   └── tsconfig.json
└── shared
    └── index.ts

컴파일 하면 아래와 같은 결과를 얻게 된다. (tsc 가 2번 실행되어야 한다.)

lib
├── client
│   ├── client
│   │   └── index.js
│   └── shared
│       └── index.js
└── server
    ├── server
    │   └── index.js
    └── shared
        └── index.js

우리가 원하는 것은 아래와 같은 것이다.

lib
├── client
│   └── index.js
├── server
│   └── index.ts
└── shared
    └── index.ts

references 의 등장

Project References · TypeScript

top-level property, references

이 프로젝트를 컴파일 하기 위해 참조하는 프로젝트들을 references 항목에 배열로 넣는다.