Two downsides to TS: an extra step to transpile, and having to write shims when it bugs out and can't verify an external declaration.

Upsides? When tuned to its most pedantic settings I've uncovered a handful of bugs that would have otherwise launched.

That's worth far more than a few tiny annoyances. tslint > jslint.

If you are working on the server side, ts-node has been a huge timesaver. It removes the extra step of compiling and lets you just run your script with `ts-node script.ts` or even `#!/usr/bin/env ts-node` at the top of your file works.

https://github.com/TypeStrong/ts-node