targettells TS what type of JS to generate, fores5for conversion is required (for example let/const -> var, class -> function + prototype, etc.), whereases6can just leave the original code as is (after removing type information).typestells TS about what types exists and what their API is. When usinglibyou are asking TS to add known core types that it already has definitions for, without having to add those yourself (for example,@types/core-js). When youimportyou adding more types that TS knows about. Additionally, you can use thetypesconfiguration property to add global types.polyfillsare required at runtime to ensure that older browsers can use the constructs (such as Promise) that exist natively in modern browsers. At this point, TS is not involved at all.