The presence of a tsconfig.json file in a directory indicates that the directory is the root of a TypeScript project. The tsconfig.json file specifies the root files and the compiler options required to compile the project.
You can check all the compiler options at the official TypeScript site: https://www.typescriptlang.org/tsconfig.
This is the tsconfig.json file that I normally use in my projects. I’ve always separated them into two files: the tsconfig.common.json file will contain all the shared compiler options, and the tsconfig.json file will extend the tsconfig.common.json file and add some specific options for that project. This is very useful when you work with MonoRepos.
My tsconfig.common.json file looks like this:
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"alwaysStrict": true,
"declaration": true,
"declarationMap": true,
"downlevelIteration": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"jsx": "react-jsx",
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"module": "commonjs",
"moduleResolution": "node",
"noEmit": false,
"noFallthroughCasesInSwitch": false,
"noImplicitAny": true,
"noImplicitReturns": true,
"outDir": "dist",
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"suppressImplicitAnyIndexErrors": false,
"target": "ESNext"
},
"exclude": ["node_modules", "dist", "coverage", ".vscode", "**/__tests__/*"]
}
And my tsconfig.json looks like this:
{
"extends": "./tsconfig.common.json",
"compilerOptions": {
"baseUrl": "./packages",
"paths": {
"@web-creator/*": ["*/src"]
}
}
}
In Chapter 14, I will explain how to create a MonoRepos architecture.