Returning to JavaScript After 5 Years
hackernoon.com
hackernoon.com
Either this is exaggerated, or people write incomprehensibly dense JavaScript code.
Null AND Undefined still coexist, though type safety helps. There's an idiomatic way to specify classes, as opposed to using a pattern of object returning closure function for instance. There's still both the == and === operators.
A problem beyond type-safety is the confusing semantics of 'this': https://github.com/Microsoft/TypeScript/wiki/'this'-in-TypeS...
https://github.com/Clay-Ferguson/meta64/blob/master/src/main...
A Google query for the definition of unsound: "not safe or robust"
https://www.typescriptlang.org/docs/handbook/type-compatibil...
You're portraying TypeScript as if it's perfect. Typescript is is permissive and structurally, rather than nominally typed. This is not TypeScript's fault. There will always be tradeoffs. Among other things in the FAQ, there is a section on how to prevent two types from being structurally incompatible. "A possible FIX if you really want two types to be incompatible is to add a 'brand' member"...
https://github.com/Microsoft/TypeScript/wiki/FAQ#type-system...
Give any good developer TS to code in, and he'll know how to use it to check every type in every variable, class, or method parameter, and the checking will be 100% perfectly reliable. That's what I mean by "problem solved".
Imagine how much of a disaster the web would be today if JavaScript allowed threading all these years. All the script-kiddies who have never written one line of back-end code in their lives suddenly having to grapple with concurrency? Oh my god what a disaster.