In TypeScript, I can take my existing JavaScript code, cut-n-paste it into TypeScript source file (foo.ts)... and it works.  TypeScript is a superset of JavaScript.

In C#, I can take my existing JavaScript code, cut-n-paste it into a C# source file (foo.cs)... and the compiler barfs.  C# is not a superset of JavaScript.

TypeScript is to JavaScript as C++ is to C.

And TypeScript introduces some draft ES6 facilities (subject to change!) into modern browsers now.  Which is not re-inventing the wheel at all, but very forward looking.