let lowerCased = strs!.map(s => s.toLowerCase()); I'm not a big fan of this, it's really starting to change JS semantics. It's not just type annotations anymore + ES6 . It's starting to look like its own language. Some might like that, I do not. They should be a bit more cautious before introducing these features. What if Ecmascript in the future uses ! as an operator for a totally unrelated purpose ? It's like decor…
Do you have the same complaints about optional parameters too? let x = (id: number, name?: string) => { return; }; Is it abuse to use interfaces as well? They are not present in vanilla JS. How about React's move away from React.createClass({}) to ES6 classes extending React.Component? Do they abuse classes? Async/await is coming too and it will turn JS on its head, does eschewing callbacks for async functions also c…
hmm, it would make more sense if it was written like that
> let x = (id: number, name: string?) => { return; };
But I guess it's more or less ok. But I definitely feel inconfortable with the ! .
> How about React's move away from React.createClass({}) to ES6 classes extending React.Component? Do they abuse classes?
I don't use React.
> Async/await is coming too and it will turn JS on its head, does eschewing callbacks for async functions also count as abuse?
The probability is higher for ES to implement async/await than the ! operator. The former is a safe bet, the latter isn't, by a long shot.
> Microsoft and the TS team have issued a mandate that TypeScript will always be a superset of EcmaScript and if ES2019 includes decorators that are incompatible with TypeScript's then it will be addressed at that time.
It means that language will break. Not very good if you write large TS codebases today.
> TypeScript was never meant to be just type annotations+ES6, there is Flow[1] for that.
That's your opinion. I'm not interested in Flow.
Ultimately TS is successful because it more or less looks like Action Script 3/ES4/JScript.net and javascript itself. Make it too Alien and the people who refused to use Coffee script because of its semantics will not want to use TS. And FYI I use TS today. I may reconsider that.