tsconfig.json file is a file of JSON format which allows us to point the root level files and different compiler options to setup that require to compile a TypeScript based projects. The existence of this file in a project specifies that the given directory is the TypeScript project folder root.
The tsconfig.json file mainly consists of the information for the following:
- CompilerOptions
- CompileOnSave
- Files
- Include
- Exclude
Let’s take an example file of tsconfig.json file and understand the purpose of each of its parts.
tsconfig.json
{
"compileOnSave" : true ,
"compilerOptions" : {
"module" : "system" ,
"noImplicitAny" : true ,
"removeComments" : true ,
"allowUnreachableCode" : false ,
"strictNullChecks" : true ,
"outFile" : "../JS/TypeScript/HelloWorld.js" ,
"sourceMap" : true
},
"files" : [
"program.ts" ,
"sys.ts"
],
"include" : [
"src/**/*"
],
"exclude" : [
"node_modules" ,
"src/**/*.spec.ts"
]
}
|
CompilerOptions – It is a property that allows specifying additional options to the TypeScript compiler. Given a list of a few optional settings section of the compilerOptions property that is needed most of the time:
- listFiles
- module
- outDir
- outFile
- rootDir
- sourceRoot
- allowUnreachableCode
- allowJs
- noImplicitUseStrict
- strictNullChecks
{
“compilerOptions”: {
“module”: “system”,
“noImplicitAny”: true,
“removeComments”: true,
“allowUnreachableCode”: false,
“strictNullChecks”: true,
“outFile”: “../JS/TypeScript/HelloWorld.js”,
“sourceMap”: true
}
}
CompileOnSave – It is a property that can be used to instruct the IDE to automatically compile the given TypeScript files and generate the output for the same.
{
“compileOnSave”: true,
“compilerOptions”: {
“module”: “system”,
“noImplicitAny”: true,
“removeComments”: true,
“allowUnreachableCode”: false,
“strictNullChecks”: true,
“outFile”: “../JS/TypeScript/HelloWorld.js”,
“sourceMap”: true
}
}
Files – It is a property that gives a list of TypeScript files that will be included by the compiler. The URL of the files can be both relative or absolute.
“files”: [
“program.ts”,
“sys.ts”
]
Include – It is a property that allows you to include a list of TypeScript files using the glob wildcards pattern.
“include”: [
“src/**/*”
]
Exclude – It is a property that allows you to exclude a list of TypeScript files using the glob wildcards pattern.
“exclude”: [
“node_modules”,
“src/**/*.spec.ts”
]