# Suggestion ## ๐ Search Terms remove emit target es3 es5 ## โ Viability Checklist My suggestion meets these guidelines: * [x] This wouldn't be a breaking change in existing TypeScript/JavaScript code * [x] This wouldn't change the runtime behavior of existing JavaScript code * [x] This could be implemented without emitting different JS based on the types of the expressions * [x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.) * [x] This feature would agree with the rest of [TypeScript's Design Goals](https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals). ## โญ Suggestion Following #47572, once the default target has been raised to a new value, can TypeScript _remove_ emit support for the no-longer-default old version in either that same major version or the next one? Using the example schedule in that issue: * Remove es3 emit support for 5.0, making es5 the lowest supported emit target * Remove es5 emit support for 6.0, making es2015 the lowest supported emit target * _...and so on_ ## ๐ Motivating Example Supporting emit to low emit targets such as ES3/5 worsens: * Dev cost for some TypeScript features: e.g. #29374's changes were mostly in emit * Output package size: e.g. `src/compiler/transformers/es2015.ts` has >4k lines today (about 10% the size of `src/compiler/checker.ts`) ## ๐ป Use Cases It'd be nice to have a leaner TypeScript without the cost of supporting emit for syntax compatibility the vast majority of runtimes no longer need.