I wonder if there are any ugly things or traps in programming TypeScript.
The only thing is - to get a best you need to prepare. If you using some library, I should find (or write, or generate) proper definition file for this library (Interface). But when you get all together - you have a lot of happy hours of coding :)