Typically, the first step in a new TypeScript project is to add in a tsconfig.json file. This file defines the project and compiler settings, for instance, files and libraries to be included in the compilation, output structure, module code generation, and so on. A typical configuration in tsconfig.json for Angular 2+ projects looks like the following:
{
"compilerOptions": {
"target": "es5",
"module": "es2015",
"moduleResolution": "node",
"noImplicitAny": true,
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"outDir": "dist",
"lib": ["es2015", "dom"]
},
"types": ["node"],
"exclude": ["node_modules", "dist"]
}
The listed compiler settings are described as follows. A full list of all options is available at the TypeScript documentation page (https://www.typescriptlang.org/docs/handbook/compiler-options.html).
Option | Type | Default | Description |
target | string | ES3 | This specifies ECMAScript target version: ES3, ES5, ES2015, ES2016, and ES2017. |
module | string | ES6 if target is "ES6" and CommonJS otherwise | This specifies the format of module code generation: None, CommonJS, AMD, System, UMD, ES6, or ES2015. |
moduleResolution | string | Classic if module is "AMD," System, ES6, and Node otherwise | This determines how modules get resolved. Either Node for Node.js style resolution or Classic. |
noImplicitAny | boolean | false | This raises errors on expressions and declarations with an implied any type. |
sourceMap | boolean | false | This generates the corresponding .map file. This is useful if you want to debug original files. |
emitDecoratorMetadata | boolean | false | This emits design type metadata for decorated declarations in source. You have to set this value to true if you want to develop web applications with Angular. |
experimentalDecorators | boolean | false | This enables experimental support for ECMAScript decorators. You have to set this value to true if you want to develop web applications with Angular. |
outDir | string | - | This is the output directory for compiled files. |
lib | string[] | Refer to the documentation for more information. | This is the list of library files to be included in the compilation. Refer to the documentation for more information. |
types | string[] | - | This is the list of names of type definitions to include. |
exclude | string[] | - | This is the list of (sub) directories excluded from the compilation. |
You can stop the compiler from emitting JavaScript on errors by setting the --noEmitOnError option to true.