The intention of this project to to allow for the evolution of a .NET based TypeScript (and resultant JavaScript) library. Contributions are welcomed as the .NET Library (meaning it's class structure and classes, not necessarily its content) has a substantial amount of usefulness. With the open sourcing of .NET, TypeScript seems the most logical means to take advantage of it. Typing, generics, classes, modules, inheritance, all are required to make a resultant JavaScript library that takes advantage of this elegance.

Much inspiration comes from TypeScript itself and from libraries like linq.js. There is of course some variance away from .NET's convention (camelCase methods in favor of TitleCase) and some things simply have to be done different. "Extensions" as a feature might be one of the greatest additions to .NET that JavaScript doesn't have a plan for, but it does have some tricky equivalents.

If you have a .NET Library class that you want to see represented in TypeScript, submit it (as an issue), or contribute it yourself! :)

Why should I use this, let alone TypeScript?

It's 100% compatible with JavaScript. Currently TypeScript.NET's target is ES5, so legacy JavaScript won't work. Mainly because of accessors. But going forward, TypeScript is nearly the same as ES6 and you don't have to change your source code to target newer versions. :) TypeScript is lead by Anders Hejlsberg, the founder of C#. You will feel quite at home in TypeScript if you are a fan of typed languages (like C#), but at the same time you'll get all the flexibility and compatibility of JavaScript.

See http://www.typescriptlang.org/ for more information about the TypeScript language.

Also some more good info on Wikipedia: http://en.wikipedia.org/wiki/TypeScript. The benefits of intellisense and using an IDE for programming should be obvious especially if you are coding for a larger project. Typed compilation is less forgiving in a good way. You simply make much less mistakes in the long run. TypeScript might be the best answer to JavaScript yet. It's still JavaScript, but with many bonuses including a growing community. :) Most major IDEs and text editors now support TypeScript either built in, or via a plug-in: Visual Studio

VS Code

WebStorm (strongly recommended!)

Sublime Text

Atom To name a few.

Highlights

Linq : Full linq.js library ported to TypeScript with improvements and optimizations. Proper use of IEnumerable with passing unit tests. All the things you love about Linq, but fully typed and JS compatible.

: Full linq.js library ported to TypeScript with improvements and optimizations. Proper use of IEnumerable with passing unit tests. All the things you love about Linq, but fully typed and JS compatible. Exceptions : There is a growing set of Exceptions like ArgumentNullException, ArgumentOutOfRangeException, etc that are useful in making decisions about how to handle errors using instanceof as if you used multiple catch statements in C#.

: There is a growing set of Exceptions like ArgumentNullException, ArgumentOutOfRangeException, etc that are useful in making decisions about how to handle errors using instanceof as if you used multiple catch statements in C#. Collections : Multiple collections types with standard ICollection<T> and IEnumerable<T> interfaces. LinkedList<T>, Queue<T>, Dictionary<T>, and more, all unit tested using a common interface test of ICollection<T>.

: Multiple collections types with standard ICollection<T> and IEnumerable<T> interfaces. LinkedList<T>, Queue<T>, Dictionary<T>, and more, all unit tested using a common interface test of ICollection<T>. IDisposable : Additional interfaces, utilities, and classes like DisposableBase that help in providing a cleanup pattern for larger applications that may easily encounter memory leaks. Many of the classes within, including IEnumerator<T>, use IDisposable to ensure releasing of references.

: Additional interfaces, utilities, and classes like that help in providing a cleanup pattern for larger applications that may easily encounter memory leaks. Many of the classes within, including IEnumerator<T>, use IDisposable to ensure releasing of references. DateTime & TimeSpan: The System/Time namespace takes these .NET classes and goes even further to provide useful classes for calculating and expressing dates and time.

More...

See the GitHub repo for more details.

Learn, Connect & Evolve

https://www.youtube.com/channel/UCG2QyAgVUEKSMBaC0Fkp5GQ