Only a good testing can save a developer from his own stupidity really. no amount of languages will save that.
That being said, Typescript will definitely catch your "stupid" mistakes...
We all made em:
function add(expectingInt){
expectringInt++
}
add("crap this is a string");
typescript will definitely ensure that you are typesafe, and honestly, with ES6, i see absolutely 0 reason NOT to use typescript. you are getting an extra level of safety with little to no negatives.