Non-null assertion operator (aka Swift's force unwrap)

Another option, if we're not trying to constrain ourselves to the way TypeScript does its types, is to rely on pattern matching syntax for the assertion. It's an idea I brought up over here (but with a different purpose in mind). The syntax would basically be this (I tweaked the syntax here to make it similar to the syntax we've already been discussing)

const user2 = user as { name } // works
const user2 = user as { xyz } // throw an error

The RHS is a pattern-matching expression from the pattern matching proposal. If the language also provides some default matchers, it would not be hard to allow null assertions as well.

const user2 = null as Types.notNullish // throws an error
const user2 = user as Types.notNullish // works

Things like instanceof could easily be supported as well, as I explained over there (which I can elaborate on in this thread, if there's interest in going this direction).

Thus, there would be only one fairly simple piece of syntax to provide assertions for all three of these categories - non-nullish, typeof, and instanceof, along with other stuff like object shape.