I understand these discussions can get frustrating - I encourage everyone to cool down for a bit. [USER] and [USER] are correct in their assessment. This is a duplicate of [URL] a duplicate of [URL] and probably more. We've made the design decision not to allow this code for the exact reasons discussed in this issue along with those issues. Object types are open (i.e. "width" subtyping) which means any object could have a property that it doesn't declare, and it's unsafe to narrow based on that.