>"While I have a lot of respect for the creators of TS,"
Creators of TypeScript are Microsoft.
To any readers unfamiliar with TypeScript and Microsoft's ethics,
be sure to research their past corporate ethics to understand whether or not they are trustworthy as a company (or at least those who lead their overarching market strategies.
Here is one example, and to me, it describes where TypeScript is going (imho):
"The strategy's three phases are:
---> Embrace: Development of software substantially compatible with a competing product, or implementing a public standard.
---> Extend: Addition and promotion of features not supported by the competing product or part of the standard, creating interoperability problems for customers who try to use the "simple" standard.
---> Extinguish: When extensions become a de facto standard because of their dominant market share, they marginalize competitors that do not or cannot support the new extensions."
https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguis...
For this reason, out of sheer convictions in anti-unethical corporate behavior, I steer clear of TypeScript, and I encourage others to do so as well-- especially those who care about corporate ethics.
I agree that Microsoft's influence should be observed and considered carefully.
That's very interesting. Could you please provide an example that showcases that inconsistency?
This comes from trying to fix 1) compiler errors in conditions where the code is safe but the compiler can't understand that and 2) destructuring products/co-products.
Even if both features work on their own and help in certain cases, combining them leads to undesired results.
should there be a link to a PR in there somewhere?
1. Typescript has to work with Javascript, which inherently makes things difficult and you have to choose between correctness or ergonomics. TS went for the latter, which probably was a good decision, otherwise no one would use it now.
2. While I have a lot of respect for the creators of TS, the language is not very consistent and uses a lot of "special cases" or "special features" to solve specific problems. But it also means that it becomes hard to ensure that all these features work together well and in the way that users expect. Other languages lack features that TS offer, but they feel more "consistent" or reliable.