The TypeScript compiler automatically includes type definitions for the ECMAScript version that we are targeting. For example, if we target ES5, we will not be able to access the Promise API, because it is part of the ES6 specification:
const p = Promise.resolve(1); // Error
However, TypeScript allows us to import the type definitions for a proposal instead of an entire ECMAScript specification. For example, we can target ES5 and use the Promise API by adding the following to our tsconfig.json file:
"lib": ["es5", "dom", "es2015.promise"]
The preceding setting is indicating to the TypeScript compiler that we want it to import the type definitions for the entire ECMAScript 5 specification, ...