Earlier quoted context omitted.
> I don't want to use a language that changes my code to something else TypeScript doesn't change your code. If you're writing ES2015 code and targeting ES2015 emit, the output code is always exactly what you put in. There isn't any difference.
I guess I'll have to look into that again then.
Most of Typescript's output changes when you are writing for the same version of JS that you are outputting are simply just removing the type hints from the final output.
That said, with allowJS "mixed" mode of Typescript now you can also try for a hybrid approach of JS and TS files in the same project and that hybrid approach gets more powerful and capable with each release. I think with some effort you can even get somewhat close enough to the point that you can have some Flow-like behavior by using JS for most files and .d.ts and .ts files for only the really type-dependent stuff.