So the main benefit that TypeScript brings is static typing. You make your code more explicit, thereby limiting the number of unintentional behaviors that are possible. The compilers type checker can suddenly take care of testing these extra constraints for you and you start removing this burden from your unit tests. As a matter of fact TypeScript has a pretty advanced type system, a magnitude better than the current Java version (14) or Go-lang. One of these features are union types (aka. coproduct, sum type, etc). This lets you represent your types as "this thing" or "this other thing". Returning a disjoint union can make your code even more explicit and thus further limiting the number of unintentional behaviors. A simple example of this is the
head function that returns the first element of a list. Either you get the value or you get undefined if the list is empty. A better approach is to return a
Maybe type which is either an instance of
Nothing. This tells you that the code calling
head needs to handle exactly two possible cases. Languages with even stronger type systems like Elm and Haskell can even enforce that your code won't compile unless you handle all the possible cases for any union type. So again the compiler helps you avoid more runtime errors.
So to conclude the benefits of using a language with strong static typing:
- Compiler helps you avoid runtime errors
- Substantially reduce number of explicit unit tests
- Better security and reliability by preventing unintentional behavior
- Let's you refactor code with confidence
- Code becomes more self-documenting
The unintended behaviour of addition (or not knowing the gotchas) on web-browser have always got FE devs scratching their head. I never really got a chance to work on an actual TS project professionally, but having worked with Node.js quite a lot and later moving to Java (mostly for web services), I just didn't want to move back to Node.js. But TS is definitely a game-changer.
Unfortunately there is too much "quick and dirty" rather than "correct, secure and reliable" in our industry.