TypeScript 2.1 has been released

TypeScript 2.1 has been released.

As per announcement Announcing TypeScript 2.1, the biggest improvements are:

  • Finally, async/await is available for ES5/ES3 compilation (so: it doesn't require to compile to ES6 anymore).
    This feature is really important, because, like in the C# world, it allows to develop async code in a linear fashion.

  • Object spead: it allows to shallow copy objects, and also to merge more of them in a single final result;
    dually there are object rest, that are used to pickup extra properties in a destructuring operation.

  • keyof operator: it allows to declare a type as an union string based on the fields of another object or class.
  • Mapped types: they allow to declare a new type as a variation of another type;
    merge with the keyof operator, they allow to declare a new type, based on another type, where all the fields are readonly, or boolean, or nullable, for example.
  • Finally, as now there is a different behaviour in module imports, it is reccomended to change this value in your tsconfig.json file:
            "compilerOptions": {
                "noImplicitAny": true,

Partial Curl animation in iOS with Modal Segue

When developing a Xamarin.iOS application, I had to navigate from the first view controller to a second view controller. To do this, I have used a Modal Segue.

The problem was the once reached the second view controller, touching the upper part of the view was unwinding the segue.

I could not understand this behaviour, and my colleague Mark Smith has been able to understand it and point me to the right solution.


While the problem is already described in Remove tap recogniser for modal UIView/Partial Curl, the solution is not completely correct (because it completely disable any functionality on the second view controller), the correct solution is found at Partial Curl transition for modal seque in iOS 8.


Here is the solution code rewritten in Xamarin/C#:

             public override void ViewDidAppear(bool animated)




                    foreach (var gesture in View.GestureRecognizers)


                          if (gesture is UITapGestureRecognizer)