Be aware that there are 2 places to configure Typescript behavior in Visual Studio 2017 (and older, I assume). They do not communicate with each other. The first is the tsconfig.json file at the root of your project (the one you get when you type tsc --init in the command line). The second is in the properties of your project (right-click the project folder in Solution Explorer => Properties => Typescript Build).
If you find your Typescript behaving in a way that is different from what you expect, make sure that both config files are synced.
For instance, despite my explicitly putting'compileOnSave':false in tsconfig.json, javascript files kept popping in next to my .ts files at every save. It was because Compile on save was checked in the project properties.