As we add support for ES6 features, we'll no doubt add support for this.

We did debate a bit on adding readonly for 1.0 early on, which would have made this easier to add, though it turns out that 'readonly' was more complex than it first seemed. Making properties readonly meant that the type system would have to traffic that information
around properly, and if we ever implied readonly-ness during type inference, then the user would have to understand how it worked. Long story short, we decided to hold off until we were going to do a more complete alignment and address it more holistically
with the other ES6 features.

Reading about the readonly properties reminded me about another thing. Have you thought about adding "nullable/non-null" concept to the type system? It seems to be similar to the readonly feature. Or something a lot more powerful like code contracts.
Of course I'm well aware of the complexity of those features but I was just curious if you had something like that in mind for future (post 1.0) TypeScript.