| >The rigid interfaces mean that I need to spend more time researching how to use various modules/libraries Why, otherwise you'd just throw random parameters in a module's functions and see what sticks? >Compile time means that it takes more time to debug anything. Most people compile their JS anyway, TS or not, with Babel et al. >maybe code completion would offset this problem but this is only possible with a heavy IDE that has intellisense or similar - Not Atom VS Code has code completion for TS and is similar to Atom. And even Sublime Text has code completion for TS (based on tools MS itself provides for "intellisense" style predictions). >- It requires more planning to do anything (since you have to design the interfaces before you can start to implement). This is also not good if you just want to try something quickly and then roll back later Doesn't make any sense. It's not as if you don't need to know the interfaces before you start to implement with regular js. Only there you need to hunt for the documentation to tell you what's expected to pass -- instead of seeing what the types are directly (e.g. with intellisense). >- Changes to one class/interface tend to have a large cascading effect on other classes/interfaces so it takes more time to make changes to code - This happens with JS too but to a much lesser extent. It happens to the exact same extend in JS. Only with TS you are shown where the problems are automatically, with JS you have to hunt those places or discover it at runtime. The rest goes downhill... |