User blog:Bognix/Wikia's adventure with TypeScript

For the time being we are using TypeScript in our Mercury project.

If you want to know what TypeScript is I recommend this article  or official documentation. Long story short TypeScirpt is a typed superset of JavaScript which compiles to clean JavaScript.

If you want to know more about Mercury here you can find small description or if you prefer to read code instead of articles here is the link to github repo.

It's typed
When there is 40+ developers working on one project it's hard to keep up with all the changes. Having types makes it easier to understand parts of code you didn't know exist.

You can create interfaces for custom objects. However TS is typed - not strongly typed which allows people to take shortcuts and instead of having readable and understable code with descriptive types you end up with some TS/JS hybrid. But more about it in "What didn't work for us" section.

Most of the popular JS libraries

It compiles
Comiplation adds another step in build process but in times of watchers and tools to automate tasks it's not so annoying. On the other hand it adds another check before pushing the change to make sure code is correct. TSlint works as a charm.