Too Long; Didn't Read
Typescript makes a lot of things easier for medium to large projects. The more I use it the less compelling I find vanilla Javascript. An impossible state is a certain combination of fields and values, that should never coexist simultaneously. In fact - you could get away without anything stopping you from making the impossible state mistake, given that everyone in your team is aware of it, and all of you are responsible of it. An engineer on our team is refactoring some old code, and rewrites some code to fetch data from your server. When the data arrives, the engineer renders a SUCCESSFUL state.